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\"}" 这样的结果。