『壹』 jsON.parse和JSON.stringify的区别
1.parse 用于从一个字符串中解析出json 对象。例如
var str='{"name":"cpf","age":"23"}'
经 JSON.parse(str) 得到:
Object:
age:"23"
name:"cpf"
_proto_:Object
ps:单引号写在{}外,每个属性都必须双引号,否则会抛出异常
2.stringify用于从一个对象解析出字符串,例如
var a={a:1,b:2}
经 JSON.stringify(a)得到:
“{“a”:1,"b":2}”
JSON.stringify,这个函数的作用主要是为了系列化对象的。(或者说是将原来的对象转换为字符串的,如json对象):
首先定义一个json对象,var jsonObject = { "UserID": "1", "UserName": "xiaozhang" };
使用alert(jsonObject)弹出一下,显示:
[Object
Object]
然后调用一下JSON.stringify一下,将json对象转换为json字符串。
var
jsontext = JSON.stringify(jsonObject);
alert(jsontext);
显示如下:
{
"UserID":
"1",
"UserName":
"xiaozhang"
}
2、jQuery.parseJSON,将一个JSON字符串转换为JSON对象(JSON.parse也是将一个json字符串解析为json对象),如下面
首先定义一个JSON字符串,var c = '{"name":"Mike","sex":"男","age":"29"}';(注意:单引号写在{}外,每个属性名都必须用双引号,否则会抛出异常。)
然后调用jQuery.parseJSON将其转换为JSON对象,
var
employeejson=jQuery.parseJSON(c);
访问的时候使用employeejson.name,employeejson.sex,employeejson.age获取相应的值
『贰』 “JSON.parse”和“JSON.stringify”有什么区别
1.JSON.parse(“要转换的数组”) 。
2.JSON.stringify(“要转化的数组”)。
3.首先,两个方版法的用法是有差别的。
①.JSON.stringify是从一个对象权中解析出字符串。
②.JSON.parse是从一个字符串中解析出json(键值对)。
4.所以在使用的时候如果参数不对应,就不能正确转换。
『叁』 JSON.parse解析特殊字符报错的解决办法
let str = JSON.stringify(arr)
str = encodeURIComponent(str)
<-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.->
arr = JSON.parse(decodeURIComponent(str)) // 再还原
《=====================================================》
JSON.stringify() : 用于将 javaScript 值转换为 JSON 字符串;
JSON.parse() :用于将一个 JSON 字符串转换为对象;
encodeURIComponent() :可把字符串作为 URI 组件进行编码,该方法不会对 ASCII 字母和数晌纤字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) ,其他字符(比如 :;/?:@&=+$,# 这链租些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制宴唤仿的转义序列替换的(链接:https://www.runoob.com/js/javascript-json-stringify.html);
decodeURIComponent() :可对 encodeURIComponent() 函数编码的 URI 进行解码(链接:https://www.runoob.com/jsref/jsref-decodeuricomponent.html)。