Jackson如何使JSON输出变得优雅?
本篇文章翻译自: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。
Jackson如何使JSON输出变得优雅?的更多相关文章
- Springmvc 配置json输出的几种方式
Spring MVC 3.0 返回JSON数据的几种方法: 1. 直接 PrintWriter 输出 2. 使用 JSP 视图 3. 使用Spring内置的支持 // Spring MVC 配置 &l ...
- 用jackson包实现json、对象、Map之间的转换
jackson API的使用 用jackson包实现json.对象.Map之间的转换
- jackson实体转json时 为NULL不参加序列化的汇总
首先加入依赖 <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson ...
- FastJson/spring boot: json输出方法二
1.引入FastJson依赖包 <!-- FastJson --> <dependency> <groupId>com.alibaba</groupId> ...
- FastJson/spring boot: json输出
1.引入FastJson依赖包 <!-- FastJson --> <dependency> <groupId>com.alibaba</groupId> ...
- Jackson 对象与json数据互转工具类JacksonUtil
1,User对象 package com.st.json; import java.util.Date; /** * @Description: JSON序列化和反序列化使用的User类 * @aut ...
- 重构qDebug()<<,使log输出到文件
重构qDebug()<<,使log输出到文件 #include <QProcessEnvironment> #include <QDateTime> #includ ...
- chalk插件 使终端输出的字带颜色
1.使终端输出红色字体: const chalk = require('chalk'); console.log(chalk.red('this is red!') 这时运行终端,打印的this is ...
- jackson解析处理JSON
package com.ruoyi.common.json; import java.io.File; import java.io.IOException; import java.io.Input ...
随机推荐
- java的WebService实践(cxf)
Java发布WebService,结合Spring,通过cxf的方式 难点:1.引用什么jar包: 1.创建接口 源码如下: package com.nankang; import javax.jws ...
- 1.3查看Linux内核版本
1.目前Linux内核主要维护的三个版本:Linux2.4.Linux2.6和Linux3.x,Android使用的是Linux2.6:Linux3.x是最新推出的Linux内核版本: 2.查看Lin ...
- MAC OS下免费下载YouTube
YouTube上有很多不错的视频,你感兴趣的视频除了可以加入自己播放列表之外,还可以将其下载到本地收藏起来.推荐这款软件“Xilisoft Download YouTube Video for Mac ...
- 当局部变量遇上全局变量——extern及花括号用法举例
请阅读以下代码并说出它的输出结果. #include <stdio.h> ; int foo() { ; { extern int val; printf("val_foo = ...
- 由window.history.back()引发的问题
由window.history.back()引发的问题 编写人:CC阿爸 2015-1-30 今天在这里,我想与大家一起分享由windows.history.back()引发的问题,笔者在实际开发当中 ...
- Vue.js学习 Item1 --快速入门
我们以 Vue 数据绑定的快速导览开始.如果你对高级概述更感兴趣,可查看这篇博文. 尝试 Vue.js 最简单的方法是使用 JSFiddle Hello World 例子.在浏览器新标签页中打开它,跟 ...
- LogStash 中字段的排除和数据的排除
排除字段 字段的排除需要在filter中进行操作,使用一个叫做 mutate 的工具,具体操作如下 由于这个工具的名字不是很容易联想到,也是找了好一会. //比如我们可能需要避免日志中kafka的一些 ...
- ThinkPHP整合支付宝即时到账接口调用
首先是在支付宝的蚂蚁金服开放平台下载PHP的demo: https://doc.open.alipay.com/doc2/detail?treeId=62&articleId=103566&a ...
- PHP 表单 - 验证邮件和URL
PHP - 验证名称 以下代码将通过简单的方式来检测 name 字段是否包含字母和空格,如果 name 字段值不合法,将输出错误信息: $name = test_input($_POST[" ...
- php codebase生成随机数
php使用codebase生成随机数. 有25幅作品拿去投票,一次投票需要选16幅,单个作品一次投票只能选择一次.前面有个程序员捅了漏子,忘了把投票入库,有200个用户产生的投票序列为空.那么你会如 ...