利用fastjson美化json串的方法

说实话工作了以后就很少回来更新博客了,因为在公司总结的一些文档都多少和业务相关而不能外露。但是还是存在这样的场景,一个小问题查了不能一下子找到满意答案。有基于此,会慢慢的把解决这样的“原子问题”的方法整理出来。

我的解决方案不一定是最好的,有更好的答案麻烦大家给出哈,相互学习。

 

问题背景:项目中返回的前端需要格式化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"}

出参:

RESULT

使用的时候会发现fastjson对json的属性有自己的排序的方式,因为json本来是不保证属性的次序的。就像上面那样,我的入参明明是key1在前,但是美化后变成了key2在前。这个时候需要加一句让fastjson保证字符串中json的次序即可。

用这个方法就行了

jsonObject = JSONObject.parseObject(json, Feature.OrderedField);

 

你可能感兴趣的:(小技巧,可用工具,Java)