+
 新版

jackson格式化(美化)问题

goto-array 发布于 2019/04/05 15:10
阅读 717
收藏 0

默认的美化输出对象时没什么问题,但是遇到数组就不太好了。

如果数组里都是非对象类型的值,输出成一行倒是没问题;

但是如果数组里含有对象,那么输出显得层次不明显。有其他美化设置吗?

实际输出
[ "update", "new", [ {
  "name" : "bgm",
  "replay" : {
    "loop" : 1,
    "volume" : 100
  },
  "trans" : {
    "time" : 0
  }
} ] ]
期望输出
[
	"update",
	"new",
	[
		{
			"name" : "bgm",
			"replay" : {
				"loop" : 1,
				"volume" : 100
			},
			"trans" : {
				"time" : 0
			}
		}
	]
]

 

加载中
1
kakai
kakai
SerializationConfig config = mapper.getSerializationConfig();
PrettyPrinter prettyPrinter = config.getDefaultPrettyPrinter();
DefaultPrettyPrinter defpp = (DefaultPrettyPrinter) prettyPrinter;
DefaultPrettyPrinter.Indenter indenter = new DefaultIndenter("   ", DefaultIndenter.SYS_LF);
defpp.indentArraysWith(indenter);
defpp.indentObjectsWith(indenter);
ObjectWriter objectWriter = mapper.writer(defpp);
String jsonStr = objectWriter.writeValueAsString(对象);

 

kakai
kakai
重点是这里: DefaultPrettyPrinter.Indenter indenter = new DefaultIndenter("\t", "\n");
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部