有懂的没,json对象中 嵌入 json字符串 它规范吗?
阅读原文时间:2023年08月13日阅读:5

json字符串 和 json对象

json串中data对应的值是String,String字符串中双引号需要使用反斜杠\进行转义, 痛恨这种, 解析时要进行二次解析data string为对象。

{"error_no":"0","error_info":"success!","data":"{\"id\":1,\"name\":\"www\"}"}

代码生成方式

String str = "{\"id\":1,\"name\":\"www\"}";
        JSONObject jsonStr = new JSONObject(true);
        jsonStr.put("error_no", "0");
        jsonStr.put("error_info", "success!");
        jsonStr.put("data", str); //这里它这么干,对于接收者来说 是恶梦吧,这样规范吗? 下面第二种才是正常人的代码吧!
        System.out.println("字符串放入json串后:"+jsonStr);

json串中data对应的值是对象,解决了前端后端接收时存在双引号和反斜杠的问题

{"error_no":"0","error_info":"success!","data":{"name":"www","id":1}}

代码生成方式

String str = "{\"id\":1,\"name\":\"www\"}";
        JSONObject jsonObject = new JSONObject(true);
        jsonObject.put("error_no", "0");
        jsonObject.put("error_info", "success!");
        // 将String转换为JSONObject再put
        jsonObject.put("data", JSON.parseObject(str));
        System.out.println("字符串对象放入json串后:"+jsonObject);

发现有java平台返回的JSON格式带第一种内嵌 JSON STRING的, 用不起第二种还是什么原因它要这么做?有懂行的朋友说说?