美文网首页
json是什么,如何处理转义

json是什么,如何处理转义

作者: inh_ | 来源:发表于2017-10-31 09:16 被阅读0次

    大家好,我是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是什么,如何处理转义_腾讯视频

    相关文章

      网友评论

          本文标题:json是什么,如何处理转义

          本文链接:https://www.haomeiwen.com/subject/kvpmpxtx.html