利用fastjson美化json串的方法

9 篇文章 0 订阅
7 篇文章 1 订阅

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

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

 

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值