国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Jackson如何使JSON輸出變得優雅?

2019-11-14 15:40:08
字體:
來源:轉載
供稿:網友

本篇文章翻譯自:How to enable PRetty print JSON output (Jackson)

在這篇文章中,我們將教你如何利用Jackson Library在控制臺或者jsp頁面優雅地輸出JSON Object和JSON String。

 

1、優雅地輸出JSON Object

下面是一個將Object利用Jackson轉換為JSON String的例子。

User user = new User();ObjectMapper mapper = new ObjectMapper();System.out.println(mapper.writeValueAsString(user));

但是輸出結果確實非常緊湊的,一點兒都不美觀。

為了能使他優雅地打印,使用ObjectMapper類的writerWithDefaultPrettyPrinter()方法。

ObjectMapper mapper = new ObjectMapper();System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(user));

結果(是不是優雅多了):

{  "age" : 29,  "messages" : [ "msg 1", "msg 2", "msg 3" ],  "name" : "mkyong"}

 

2、優雅地輸出JSON String

這有一點點的棘手,再次使用ObjectMapper類的writerWithDefaultPrettyPrinter()方法。

String test = "{/"age/":29,/"messages/":[/"msg 1/",/"msg 2/",/"msg 3/"],/"name/":/"mkyong/"}";System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(test));

上面代碼運行后,我們發現他打印格式還是緊湊的,并不是我們想要的優雅類型。

"{/"age/":29,/"messages/":[/"msg 1/",/"msg 2/",/"msg 3/"],/"name/":/"mkyong/"}"

為了解決這問題,我們需要先將JSON String變成JSON Object,然后再利用 [1] 描述的方法,進行優雅地輸出。

String test = "{/"age/":29,/"messages/":[/"msg 1/",/"msg 2/",/"msg 3/"],/"name/":/"mkyong/"}";Object json = mapper.readValue(test, Object.class);System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(json));

輸出結果:

{  "age" : 29,  "messages" : [ "msg 1", "msg 2", "msg 3" ],  "name" : "mkyong"}

 

3、在JSP頁面優雅地輸出JSON String

@Controller@RequestMapping("/anything")public class AdminController {  @RequestMapping(method = RequestMethod.GET)  public ModelAndView index() {    String test = "{/"age/":29,/"messages/":[/"msg 1/",/"msg 2/",/"msg 3/"],/"name/":/"mkyong/"}";    Object json = mapper.readValue(test, Object.class);            ModelAndView modelandView = new ModelAndView("viewname");    modelandView.addObject("output", mapper.writerWithDefaultPrettyPrinter().writeValueAsString(json));        return modelandViewl;  }}

 

在JSP頁面里面,使用: <pre>${output}</pre> 

Note: 本文使用writerWithDefaultPrettyPrinter(),老一套的defaultPrettyPrintingWriter()已經deprecated。

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌拉特后旗| 遂宁市| 鹤岗市| 镇巴县| 托里县| 高碑店市| 南岸区| 大关县| 霸州市| 镇巴县| 丹寨县| 麦盖提县| 宁晋县| 和龙市| 林州市| 泌阳县| 鹿邑县| 兰溪市| 无为县| 寿光市| 安龙县| 桃源县| 岳普湖县| 益阳市| 应城市| 二手房| 伊川县| 远安县| 民权县| 驻马店市| 砀山县| 泊头市| 临夏县| 青海省| 郸城县| 乌恰县| 内丘县| 泰顺县| 昌都县| 乐东| 祥云县|