bbsvs

JavaScript的JSON 数据格式处理

作者:bbsvs 时间:2017-08-25

这篇文章主要是详细介绍JavaScript的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\"}" 这样的结果。


TAG:
json