json是什么,如何处理转义

2017-10-31  本文已影响0人  inh_

大家好,我是IT修真院成都分院第7期的学员韩建名,一枚正直纯洁善良的WEB前端程序员。

今天给大家带来的是:json是什么,如何处理转义

目录

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

J O S N是什么?

JSON 是适用于 Ajax 应用程序的一种有效格式,原因是它使 JavaScript 对象和字符串值之间得以快速转换 JSON是一种传递对象的语法,对象可以是name/value对,数组和其他对象。

转义

大家在调用 jsonp 接口或者调用js文件的时候,由于文件编码不同导致的乱码问题,应该不会陌生吧。 如果你的文件出现了非英文字符,如果调用时文件编码不一致,则会出现乱码情况。

JSON是一个提供了stringify和parse方法的内置对象

stringify将js对象转化为符合json标准的字符串

parse将符合json标准的字符串转化为js对象

2.知识剖析

JSON.parse

JSON.parse的参数包含转移字符的时候会遇到两次转义的问题,其实第一次是字符串本身的转义,第二次是将真正转为js对象的转义。

举例如下: 例子一:将字符串'{"a":"b","b":"\\\\"}'传递给JSON.parse,首先解析器提取单引号括起来的字符串时认为第一个\转义第二个\ 第三个\转义第四个\, 也就是说实际可输出字符串是{"a":"b","b":"\\"}(可通过console.log('{"a":"b","b":"\\\\"}')验证),之后正式转为js对象的时候还有一次转义, 也就是实际输出字符转中的第一个\转义第二个\(此时只有两个\)。 所以console.log(JSON.parse('{"a":"b","b":"\\\\"}') );输出结果为Object {a: "b", b: "\"}, 也就是说实际显示的数据为一个\(实际可输出一个\说明在此之前还有一个\)。

例子二:

var obj = {a : "b",b : "\\",c : {b : "\\",a : {b : "\\"}}};

var json_str = JSON.stringify(obj);

console.log( JSON.stringify(obj) );

console.dir(JSON.parse(json_str));

console.dir(JSON.parse('{"a":"b","b":"\\\\","c":{"b":"\\\\","a":{"b":"\\\\"}}}'));

根据转义规则,实际输出一个\在这个\之前必定有一个\。所以如上第一行输出按照书写来说为'{"a":"b","b":"\\\\","c":{"b":"\\\\","a":{"b":"\\\\"}}}',可通过第三条输出来验证。 总结,如果想在js对象中出现一个\,需要在json字符串中出现四个\ 。

3.常见问题

特殊字符导致json字符串转换成json对象出错

对于其他的其他的特殊字符 1.双引号("),如果正确出现双引号应为\\\" 2.\n,如想想出现正确的换行需要json字符串中是\\n,其实是先对\n中的\转义,n变成了普通字符,在解析为js对象的时候n与之前的\(只有一个\了)被解释为换行。如下的两个与此类似。 3.\r,\\r 4.\t,\\t

http://blog.csdn.net/robotech_er/article/details/40260377

4.解决方案

JSON.stringify 语法

语法: JSON.stringify(value [, replacer] [, space]) value:是必须要的字段。就是你输入的对象,比如数组啊,类啊等等。 replacer:这个是可选的。它又分为2种方式,一种是方法,第二种是数组。 情况一:我们先说数据,通过我们后面的实验可以知道,它是和第一个有关系的。一般来说,我们系列化后的结果是通过键值对来进行表示的。 比如说:

name:"lan",age:25

情况二:如果是方法,那很简单,就是说把系列化后的每一个对象(记住 是每一个)传进方法里面进行处理。 space:很好理解,用什么来做分隔符的。 1.如果省略的话,那么显示出来的值 就没有分隔符。直接输出来 2.如果是一个数字的话,那么它就定义缩进几个字符,当然 如果大于10 ,则最大值为10. 3.如果是一些转义字符,比如“\t”,表示回车,那么它每行一个回车。 4.如果仅仅是字符串,OK,就在每行输出值的时候把这些字符串附加上去就OK。当然,最大长度也是10个字符。

var obj={

webName:"脚本之家",

url:"jb51.net",

age:"2"

}

var str=JSON.stringify(obj)

console.log(str);

var student = new Object();

student.name = "Lanny";

student.age = "25";

student.location = "China";

var json = JSON.stringify(student);

alert(student);

5.参考文献

参考一:参考一

参考一:参考二

8.更多讨论

JSON处理转义时出现无法特殊字符无法处理时怎么办?凉拌?


json是什么,如何处理转义_腾讯视频
上一篇下一篇

猜你喜欢

热点阅读