Jackson 美化輸出JSON,優(yōu)雅的輸出JSON數(shù)據(jù),格式化輸出JSON數(shù)據(jù)... ...
一下用了這么多形容詞,就是怕你們找不到。Jackson 美化輸出JSON,優(yōu)雅的輸出JSON數(shù)據(jù),格式化輸出JSON數(shù)據(jù)
其實(shí)本站的第一個(gè)工具,也就是首頁的,就是JSON格式化輸出,但是增加了校驗(yàn)功能,以及中文提示問題所在。比如如下 JSON 少了一個(gè)“,”。
好了,介紹完畢,開始走代碼吧。
Jackson 格式化輸出JSON 代碼說明(對(duì)象)
我們一般輸出就是普通的toString
輸出。如下代碼:
Demo demo = new Demo("sojson",4,"http://zijieyoumin.cn");
ObjectMapper mapper = new ObjectMapper();
System.out.println(mapper.writeValueAsString(demo));
輸出結(jié)果:
{"name":"sojson","age":4,"domain":"http://zijieyoumin.cn"}
非常不利于肉眼觀看,而且一大坨,如果是JSON很大的話,那么更難受。那么我們美化輸出呢?
美化/優(yōu)雅/格式化輸出,代碼如下:
public static void main(String[] args) throws JsonProcessingException {
Demo demo = new Demo("sojson",4,"http://zijieyoumin.cn");
ObjectMapper mapper = new ObjectMapper();
//普通輸出
System.out.println(mapper.writeValueAsString(demo));
//格式化/美化/優(yōu)雅的輸出
System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(demo));
}
輸出結(jié)果:
{
"name" : "sojson",
"age" : 4,
"domain" : "http://zijieyoumin.cn"
}
是不是結(jié)果很nice?下面再看下字符串輸出。
Jackson 格式化輸出JSON 代碼說明(字符)
其實(shí)這里就是把字符串轉(zhuǎn)成對(duì)象(Object
),然后再輸出的。
優(yōu)雅輸出 Java代碼:
public static void main(String[] args) throws IOException {
//已知一個(gè)json 字符串
String json = "{\"name\":\"sojson\",\"age\":4,\"domain\":\"http://zijieyoumin.cn\"}";
//求優(yōu)雅輸出
ObjectMapper mapper = new ObjectMapper();
Object obj = mapper.readValue(json, Object.class);
System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj));
}
輸出結(jié)果:
{
"name" : "sojson",
"age" : 4,
"domain" : "http://zijieyoumin.cn"
}
這里有的同學(xué)是不是想到,如果直接用上面的方法(writerWithDefaultPrettyPrinter()
)呢,因?yàn)閰?shù)類型是Object
,其實(shí)我看了源碼,Object
是為了你方便傳參為各種你的對(duì)象。如果你傳的String
,那么直接出來String
了。也就是還是輸出原來的方式。當(dāng)然你也可以試試。
Jackson Maven引入:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.7.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.7.4</version>
</dependency>
測(cè)試類請(qǐng)?jiān)诟郊邢螺d。
版權(quán)所屬:SO JSON在線解析
原文地址:http://zijieyoumin.cn/blog/245.html
轉(zhuǎn)載時(shí)必須以鏈接形式注明原始出處及本聲明。
如果本文對(duì)你有幫助,那么請(qǐng)你贊助我,讓我更有激情的寫下去,幫助更多的人。