在输出json的key/value字符串时,由于value中含有"rnrn"字符串,导致提示json格式错误,具体如下:[{"testa":"testc"},{"key":"valuernrnend"}]提示:
... { "key": "valueend" }] ----------------------^
Expecting 'STRING', 'NUMBER',
'NULL', 'TRUE', 'FALSE', '{',
[{\"testa\":\"testc\"},{\"key\":\"value\r\n\r\nend\"}] 拼成 [{\"testa\":\"testc\"},{\"key\":\"value\\r\\n\\r\\nend\"}]
待解析的JSON字符串中如果有特殊字符如rn,则应该在解析之前先替换掉,然后再解析。
可以根据JSON数据的作用来替换rn,例如如果是浏览器需要展示的数据可以替换成
换行;如果是普通数据则替换为空串或者空格。
示例代码:
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class JosnTestMain {
public static void main(String[] args) {
String t = "[{\"testa\":\"testc\"},{\"key\":\"value\r\n\r\nend\"}]";
t = t.replaceAll("\r\n", "<br/>");
JSONArray array = JSONArray.fromObject(t);
for(int i = 0;i<array.size();i++){
JSONObject object = array.getJSONObject(i);
if(object.containsKey("key")){
System.out.println(object.get("key"));
}
}
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。