免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1990 | 回复: 1
打印 上一主题 下一主题

JSON数据格式 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-01-13 16:44 |只看该作者 |倒序浏览
JSON数据格式






1,基础

这篇文章讲的比较深入,所以不用我画蛇添足了,只是下面这段代码很好的演示了JSON如何处理字符串数据,保存下来备查:

  zt from:https://www.ibm.com/developerworks/cn/web/wa-lo-json/

  ———————————————————————————————————

  将 String 对象编码为 JSON 格式时,只需处理好特殊字符即可。另外,必须用 (") 而非 (') 表示字符串:
  1. static String string2Json(String s) {
  2.     StringBuilder sb = new StringBuilder(s.length()+20);
  3.     sb.append('\"');
  4.     for (int i=0; i<s.length(); i++) {
  5.         char c = s.charAt(i);
  6.         switch (c) {
  7.         case '\"':
  8.             sb.append("\\\"");
  9.             break;
  10.         case '\\':
  11.             sb.append("\\\\");
  12.             break;
  13.         case '/':
  14.             sb.append("\\/");
  15.             break;
  16.         case '\b':
  17.             sb.append("\\b");
  18.             break;
  19.         case '\f':
  20.             sb.append("\\f");
  21.             break;
  22.         case '\n':
  23.             sb.append("\\n");
  24.             break;
  25.         case '\r':
  26.             sb.append("\\r");
  27.             break;
  28.         case '\t':
  29.             sb.append("\\t");
  30.             break;
  31.         default:
  32.             sb.append(c);
  33.         }
  34.     }
  35.     sb.append('\"');
  36.     return sb.toString();
  37. }
复制代码
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\"}" 这样的结果。

论坛徽章:
0
2 [报告]
发表于 2012-01-13 16:45 |只看该作者
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP