分享人:吴胜
目录
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
myObj = {
"name":"jnshu",
"alexa":1000,
"sites": {
"site1":"www.jnshu.com",
"site2":"m.jnshu.com",
"site3":"c.jnshu.com"
}
}
console.log(myObj)
//输出结果:
// Object {name: "jnshu", alexa: 1000, sites: Object}
JSON对象是 JavaScript 的原生对象,用来处理 JSON 格式数据。 通俗点讲,每个符合JSON格式的值就是一个JSON对象。也就是说,每个JSON对象,都是一个值。一个JSON对象对应且只对应一个值,要么是简单类型的值,要么是复合类型的值。
JSON.stringify(value [, replacer] [, space])
value:是必须要的字段。就是你输入的值,比如数组啊,对象啊等等。
replacer:这个是可选的。它又分为2种方式,一种是方法,第二种是数组。
var obj2 ={
a:1,
b:2
};
var obj2 =JSON.stringify(obj2,function(key,value){
if(typeof value === "number"){
value = 2 * value;
}
return value;
});
conlose.log(obj2); //("a":2,"b":4)
var obj3 ={
a:1,
b:2,
c:3,
d:4
};
var obj3 = josn.stringify(obj3,["d","c"]);
conlose.log(obj3);//("d":4,"c":3)
var obj4= {
p1:1,
p2:2
};
var obj4 = json.stringify(obj4,null,4);
console.log(obj4);
//{
// "p1":1,
// "p2":2
//}
在js中我们使用的js对象进行处理,但是在与后端数据交换的时候,我们需要发送规定的json格式的字符串,所以在给后端发送或接受数据的时候,需要转义。
比如'{"a":"b","b":"\\\\"}' //{a: "b", b: "\"},
首先解析器提取单引号括起来的字符串时认为第一个‘\’是用来转义第二个‘\’的 ,第三个‘\是用来’转义第四个‘\’, 结果输出字符串是{“a”:“b”,“b”:"\\"}。
然后正式转为js对象的时候还有一次转义, 也就是实际输出字符转中的第一个\转义第二个\(此时只有两个\),结果输出字符串是{“a”:“b”,“b”:"\"}。
所以说我们想要输出"\“时需要输入四个”\",不然会出错。
例:
var obj = {a: 'Hello', b: 'World'}; //这是一个对象,注意键名也是可以使用引号包裹的
var json = '{"a": "Hello", "b": "World"}'; //这是一个 JSON 字符串,本质是一个字符串
感谢大家观看
BY : 吴胜