说实话工作了以后就很少回来更新博客了,因为在公司总结的一些文档都多少和业务相关而不能外露。但是还是存在这样的场景,一个小问题查了不能一下子找到满意答案。有基于此,会慢慢的把解决这样的“原子问题”的方法整理出来。
我的解决方案不一定是最好的,有更好的答案麻烦大家给出哈,相互学习。
问题背景:项目中返回的前端需要格式化json,已经引入了处理json的pom,我这边是基于fastjson的
解决方案:
/**
* json 美化
* @param json
* @return
*/
private String prettyJson(String json){
if(StringUtils.isBlank(json)){
return json;
}
JSONObject jsonObject = null;
try {
jsonObject = JSONObject.parseObject(json);
}catch (Exception e){
return json;
}
return JSONObject.toJSONString(jsonObject,true);
}
解决示例:入参:{"key":"value","key2":"value2"}
出参:
使用的时候会发现fastjson对json的属性有自己的排序的方式,因为json本来是不保证属性的次序的。就像上面那样,我的入参明明是key1在前,但是美化后变成了key2在前。这个时候需要加一句让fastjson保证字符串中json的次序即可。
用这个方法就行了
jsonObject = JSONObject.parseObject(json, Feature.OrderedField);