开发者社区> 问答> 正文

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

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

 Expecting 'STRING', 'NUMBER',

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

展开
收起
杨冬芳 2016-07-05 11:07:12 10320 0
1 条回答
写回答
取消 提交回答
  • IT从业
    [{\"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"));
                }
            }
        }
    } 
    
    2019-07-17 19:51:18
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载