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":"u5e7fu4e1cu4f53u80b2,CCTV5"}
3,为什么要写这个。
ZenTaoPHP框架中,请求类型如果是“json”,输出结果会以JSON格式封装,但在对输出信息进行分析时,发现并非标准的JSON格式。
深究后,发现ZenTaoPHP对一部分数据进行了二次JSON封装,输出类似:"{"value":"u5e7fu4e1cu4f53"}" 这样的结果。