JSON数据格式
1,基础
这篇文章讲的比较深入,所以不用我画蛇添足了,只是下面这段代码很好的演示了JSON如何处理字符串数据,保存下来备查:
zt from:https://www.ibm.com/developerworks/cn/web/wa-lo-json/
———————————————————————————————————
将 String 对象编码为 JSON 格式时,只需处理好特殊字符即可。另外,必须用 ("
) 而非 ('
) 表示字符串:
static String string2Json(String s) { StringBuilder sb = new StringBuilder(s.length()+20); sb.append('\"'); for (int i=0; i<s.length(); i++) { char c = s.charAt(i); switch (c) { case '\"': sb.append("\\\""); break; case '\\': sb.append("\\\\"); break; case '/': sb.append("\\/"); break; case '\b': sb.append("\\b"); break; case '\f': sb.append("\\f"); break; case '\n': sb.append("\\n"); break; case '\r': sb.append("\\r"); break; case '\t': sb.append("\\t"); break; default: sb.append(c); } } sb.append('\"'); return sb.toString(); }
2,在PHP中的应用。
PHP中使用json_encode和json_decode来进行JSON封装和拆装。
封装string类型数据:json_encode在输出结果中,会在源字符串两端加上("),如对象内容是(abc),结果是("abc”)
封装stdClass对象类型数据:比如有个"value”成员内容是字符串,结果是:{"value":"\u5e7f\u4e1c\u4f53\u80b2,CCTV5"}
3,为什么要写这个。
ZenTaoPHP框架中,请求类型如果是“json”,输出结果会以JSON格式封装,但在对输出信息进行分析时,发现并非标准的JSON格式。
深究后,发现ZenTaoPHP对一部分数据进行了二次JSON封装,输出类似:"{\"value\":\"\\u5e7f\\u4e1c\\u4f53\"}" 这样的结果。