利用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);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章