說實話工作了以後就很少回來更新博客了,因爲在公司總結的一些文檔都多少和業務相關而不能外露。但是還是存在這樣的場景,一個小問題查了不能一下子找到滿意答案。有基於此,會慢慢的把解決這樣的“原子問題”的方法整理出來。
我的解決方案不一定是最好的,有更好的答案麻煩大家給出哈,相互學習。
問題背景:項目中返回的前端需要格式化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);