【简介】

在无网无插件的情况下,需要对JSON字符串进行格式化


【Demo 地址】

https://github.com/qidasheng2012/json-format


【pom】

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.5.RELEASE</version>
        <relativePath/>
    </parent>
    <groupId>com.it</groupId>
    <artifactId>json-format</artifactId>
    <version>1.0.0</version>
    <name>json-format</name>
    <description>Demo project for json-format</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.62</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

【application.yml】

server:
  port: 9527

spring:
  mvc:
    view:
      prefix: classpath:/templates/
      suffix: .html

【controller】

核心就是通过fastjson进行字符串的格式化

package com.it.controller;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/json")
public class JsonFormatController {

    @PostMapping("/format")
    public String format(@RequestBody String jsonStr) {

        if (!StringUtils.hasText(jsonStr)) {
            return "";
        }

        JSONObject jsonObject = JSON.parseObject(jsonStr);
        return JSON.toJSONString(jsonObject, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue
                , SerializerFeature.WriteDateUseDateFormat);

    }
}

其实这里已经实现功能了
在这里插入图片描述


【页面】

为了方便,编写了个简单的页面。(本人非专业前端,页面写的low,不要介意)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>json-format</title>
</head>
<body>
<div style="height: auto;width: 100%;border: 0px solid gray; margin: 0 auto; overflow: hidden">
    <div id="left" style="text-align: left;">
        <div style="padding-top: 10px">格式化前数据</div>
        <div style="padding-top: 10px">
            <textarea id="left_text" rows="10" cols="180"></textarea>
        </div>
    </div>

    <div id="middle" style="text-align: left;padding-top: 10px">
        <button onclick="format()" style="background-color: #6495ED;width: 80px;height: 40px">
            <font style="front-family:微软雅黑,宋体;front-size:lem;color: #FFFFFF">
                <b>格式化</b>
            </font>
        </button>
    </div>

    <div id="right" style="text-align: left;">
        <div style="padding-top: 10px">格式化后数据</div>
        <div style="padding-top: 10px">
            <textarea id="right_text" rows="60" cols="180"></textarea>
        </div>
    </div>
</div>

</body>

<script src="./js/jquery-1.8.2.min.js"></script>
<script type="text/javascript">
    function format() {
        var jsonStr = $("#left_text").val();

        if (jsonStr == "") {
            alert("请输入要格式化的json字符串")
            return
        }

        $.ajax({
            type:"POST",
            url:"/json/format",
            datatype: "json",
            data: jsonStr,
            contentType:"text/plain;charset=UTF-8",
            success: function (data) {
                $("#right_text").val(data)
            },
            error:function () {
                alert("要格式化的json字符串格式错误!")
            }
        });
    }
</script>
</html>

【测试】

找台服务器部署上去,这里以本地为例
访问: http://localhost:9527/

在这里插入图片描述


【总结】

本文主要介绍在没有插件的情况下,写个小程序来格式化json字符串,不需要界面的话直接用postman调用接口就行

Logo

新一代开源开发者平台 GitCode,通过集成代码托管服务、代码仓库以及可信赖的开源组件库,让开发者可以在云端进行代码托管和开发。旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐