开发者社区> 问答> 正文

json的值中包含\r\n\r\n怎么解决?

杨冬芳 2016-07-05 11:07:12 5224

在输出json的key/value字符串时,由于value中含有"rnrn"字符串,导致提示json格式错误,具体如下:[{"testa":"testc"},{"key":"valuernrnend"}]提示:
... { "key": "valueend" }] ----------------------^

 Expecting 'STRING', 'NUMBER',

'NULL', 'TRUE', 'FALSE', '{',

JSON 移动开发 数据格式
分享到
取消 提交回答
全部回答(1)
  • 杨冬芳
    2019-07-17 19:51:18
    [{\"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"));
                }
            }
        }
    } 
    
    0 0

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程