JSON 数据格式介绍


  本文标签: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\"}" 这样的结果 。