1. fastjson
public String fn_jsonFormat(String strResponse) {
JSONObject objJasonRes= JSONObject.parseObject(strResponse);
jsonString = JSON.toJSONString(objJasonRes, SerializerFeature.PrettyFormat,
SerializerFeature.WriteMapNullValue, SerializerFeature.WriteDateUseDateFormat);
return jsonString;
}
得到了格式化的结果但会报错 - com.alibaba.fastjson.JSONException: unclosed string : T
解决方法:
- 升级到最新的版本:失败
- 去除特殊字符后成功,想来应该是fastjson处理特殊字符上的问题,推荐个格式检查网站http://www.bejson.com/
2. 花了一个小时查问题,太浪费时间了,还是自己动手弄个
public String fn_jsonFormat(String strResponse) {
int intLevel = 0;
StringBuffer strJsonFormatBuf= new StringBuffer();
for(int i=0;i<strResponse.length();i++)
{
char c = strResponse.charAt(i);
if (level > 0 && '\n' == strJsonFormatBuf.charAt(strJsonFormatBuf.length() - 1)) {
strJsonFormatBuf.append(fn_getLevelStr(intLevel ));
}
switch (c) {
case '{':
case '[':
strJsonFormatBuf.append(c + "\n");
intLevel ++;
break;
case ',':
strJsonFormatBuf.append(c + "\n");
break;
case '}':
case ']':
strJsonFormatBuf.append("\n");
intLevel --;
strJsonFormatBuf.append(getLevelStr(intLevel ));
strJsonFormatBuf.append(c);
break;
default:
strJsonFormatBuf.append(c);
break;
}
}
return strJsonFormatBuf.toString();
}
最后输出结果:
{
"creationDateTime":"2019-09-04T02:59:49Z",
"creator":{
"email":"restauto_export08@mailtest.dev.bom.com",
"fullName":"restAuto api08",
"guid":"BTDW1QUUPUBUDWFYZUDT"
},
"criteria":{
"number":[
"POO-29"
]
},
"description":"api export190904_105949",
"guid":"CUEX2RVVQVBUDWAPEREP",
"name":"ldu_export190904_105949",
"options":{
"bomLevels":"FULL",
"exportViews":[
"SPECS",
"BOM"
],
"revisionStatus":"WORKING"
},
"world":"ITEMS"
}