2、示例json字符串:

{"房产":[{"area":"220平米","address":"西虹市朱雀路888弄","price":"20000000元"},{"area":"356平米","address":"西虹市龙门路666弄","price":"40000000元"}],"基本信息":{"weight":"150斤","age":"36","username":"王多鱼","height":"175cm","hobby":"花钱"},"女朋友":[{"skill":"钢琴,舞蹈","name":"爱丽丝","weight":"95斤","age":"18","height":"165cm"},{"skill":"小提琴,唱歌,舞蹈","name":"安妮","weight":"100斤","age":"20","height":"170cm"}]}

3、示例代码

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
 * @Description: 格式化输出
 * @Auther: ztt
 * @Date: 2020/4/21 13:16
public class Test {
    public static void main(String[] args) {
        String jsonStr = "{\"房产\":[{\"area\":\"220平米\",\"address\":\"西虹市朱雀路888弄\",\"price\":\"20000000元\"},{\"area\":\"356平米\",\"address\":\"西虹市龙门路666弄\",\"price\":\"40000000元\"}],\"基本信息\":{\"weight\":\"150斤\",\"age\":\"36\",\"username\":\"王多鱼\",\"height\":\"175cm\",\"hobby\":\"花钱\"},\"女朋友\":[{\"skill\":\"钢琴,舞蹈\",\"name\":\"爱丽丝\",\"weight\":\"95斤\",\"age\":\"18\",\"height\":\"165cm\"},{\"skill\":\"小提琴,唱歌,舞蹈\",\"name\":\"安妮\",\"weight\":\"100斤\",\"age\":\"20\",\"height\":\"170cm\"}]}\n";
        JSONObject jsonObject = JSONObject.parseObject(jsonStr);
        String formatStr = JSON.toJSONString(jsonObject, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue,
                SerializerFeature.WriteDateUseDateFormat);
        System.out.println(formatStr);

打印结果如下:

"房产":[ "area":"220平米", "address":"西虹市朱雀路888弄", "price":"20000000元" "area":"356平米", "address":"西虹市龙门路666弄", "price":"40000000元" "基本信息":{ "weight":"150斤", "age":"36", "username":"王多鱼", "height":"175cm", "hobby":"花钱" "女朋友":[ "skill":"钢琴,舞蹈", "name":"爱丽丝", "weight":"95斤", "age":"18", "height":"165cm" "skill":"小提琴,唱歌,舞蹈", "name":"安妮", "weight":"100斤", "age":"20", "height":"170cm"

4、格式化方式说明

fastjson是怎么格式化字符串的呢?我们可以debug跟踪一下代码。如下图所示,可以看到,fastjson往原始的字符串里面添加了很多的\n和\t格式字符,这样打印的时候,就会按照json格式打印出来。

方式二、使用Gson

1、项目的pom.xml依赖

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.2.4</version>
</dependency>

2、示例json字符串:

{"房产":[{"area":"220平米","address":"西虹市朱雀路888弄","price":"20000000元"},{"area":"356平米","address":"西虹市龙门路666弄","price":"40000000元"}],"基本信息":{"weight":"150斤","age":"36","username":"王多鱼","height":"175cm","hobby":"花钱"},"女朋友":[{"skill":"钢琴,舞蹈","name":"爱丽丝","weight":"95斤","age":"18","height":"165cm"},{"skill":"小提琴,唱歌,舞蹈","name":"安妮","weight":"100斤","age":"20","height":"170cm"}]}

3、示例代码

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
 * @Description: 格式化输出
 * @Auther: ztt
 * @Date: 2020/4/21 13:30
public class Test2 {
    public static void main(String[] args) {
        String jsonStr = "{\"房产\":[{\"area\":\"220平米\",\"address\":\"西虹市朱雀路888弄\",\"price\":\"20000000元\"},{\"area\":\"356平米\",\"address\":\"西虹市龙门路666弄\",\"price\":\"40000000元\"}],\"基本信息\":{\"weight\":\"150斤\",\"age\":\"36\",\"username\":\"王多鱼\",\"height\":\"175cm\",\"hobby\":\"花钱\"},\"女朋友\":[{\"skill\":\"钢琴,舞蹈\",\"name\":\"爱丽丝\",\"weight\":\"95斤\",\"age\":\"18\",\"height\":\"165cm\"},{\"skill\":\"小提琴,唱歌,舞蹈\",\"name\":\"安妮\",\"weight\":\"100斤\",\"age\":\"20\",\"height\":\"170cm\"}]}\n";
        JsonParser jsonParser = new JsonParser();
        JsonObject jsonObject = jsonParser.parse(jsonStr).getAsJsonObject();
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        String formatStr = gson.toJson(jsonObject);
        System.out.println(formatStr);

打印结果如下:

"房产": [ "area": "220平米", "address": "西虹市朱雀路888弄", "price": "20000000元" "area": "356平米", "address": "西虹市龙门路666弄", "price": "40000000元" "基本信息": { "weight": "150斤", "age": "36", "username": "王多鱼", "height": "175cm", "hobby": "花钱" "女朋友": [ "skill": "钢琴,舞蹈", "name": "爱丽丝", "weight": "95斤", "age": "18", "height": "165cm" "skill": "小提琴,唱歌,舞蹈", "name": "安妮", "weight": "100斤", "age": "20", "height": "170cm"

4、格式化方式说明

gson是怎么格式化字符串的呢?我们可以debug跟踪一下代码。如下图所示,可以看到,gson往原始的字符串里面添加了很多的\n和空格,也就是说换行用\n来操作,缩进用空格来搞,不同于fastson缩进用\t来搞。

       以上测试,我们仅仅是在控制台里打印这些字符串,在实际的使用场景中,我们更多的是需要把格式化好的字符串写到文件或者生成各种文件。这个时候就要考虑一下字段忽略空格、缩进等问题。比方说生成pdf的ITEXT库,就会忽略掉\t,导致生成的pdf文件显示结果跟我们预想的不一样,如果出现这种问题,可以考虑用字符替换等方式解决。

参考文章:https://www.cnblogs.com/shoufeng/p/11196500.html

方式一、使用阿里的FastJson1、项目的pom.xml依赖&lt;dependency&gt; &lt;groupId&gt;com.alibaba&lt;/groupId&gt; &lt;artifactId&gt;fastjson&lt;/artifactId&gt; &lt;version&gt;1.2.58&lt;/version&gt;&lt;/depende... 去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 1.json字符串转换为对象 String jsonString="{'idcard':'42313123','id':'2345'}"; Channelbankcard c =JSONObject.parseObject(jsonString, Channelbankcard.class); Sy... JSONObject.toJSON(map).toString() 转换后的value变成了时间戳,显示出来很不友好。后来翻阅fastjson的API发现有个方法可以将对象中的时间格式不转化为时间戳的方法 JSON.toJSONStringWithDateFormat(O...
使用fastJSON转换对象,对象中的日期自动转为时间戳问题 fastJSON使用toJSONString转换成json时会自动将对象中的日期属性转为时间戳格式 可以使用下面方式进行转换 JSON.toJSONStringWithDateFormat(Object,dateformat,SerializerFeature.WriteDateUseDateFormat) JSON.toJSONStringWithDateFormat(sceneDetailList, "yyyy-MM-dd", Ser
User user = new User("kk","123"); String s = toJSONString(user); System.out.println(s); 得到的输出为: 可以看到,通过toJSONString这个方法可以得到一个将java对象转为json表示方式的字符串,下面我们来根据源码分析一下这个代码。 该方法是定义在JSON这个类中
Java中,你可以使用各种库来将字符串转换为JSON格式。其中,最常用的是使用JSON库,例如 Jackson、GsonFastjson等。下面以Jackson库为例,演示如何将字符串转化为JSON: 首先,确保你已经添加了Jackson库的依赖。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.5</version> </dependency> 然后,通过以下代码将字符串转化为JSON: ```java import com.fasterxml.jackson.databind.ObjectMapper; public class StringToJsonExample { public static void main(String[] args) throws Exception { ObjectMapper mapper = new ObjectMapper(); String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; // 将字符串转化为JSON对象 Object json = mapper.readValue(jsonString, Object.class); // 将JSON对象转化为格式化的JSON字符串 String prettyJson = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(json); System.out.println(prettyJson); 以上代码中,首先创建了一个`ObjectMapper`对象,它是Jackson库的核心类,用于处理JSON的读写操作。然后使用`readValue()`方法将字符串转化为JSON对象。最后,使用`writerWithDefaultPrettyPrinter()`方法将JSON对象转化为格式化的JSON字符串,方便查看输出结果。 运行以上代码,输出结果将会是格式化后的JSON字符串: "name" : "John", "age" : 30, "city" : "New York" 这样就完成了将字符串转化为JSON的操作。你可以根据实际需求选择其他的JSON库和方法来实现相同的功能。