JSON.stringify()&JSON.parse()的使用

image
JSON.stringify()&JSON.parse()

两者对比JSON.stringify()&JSON.parse()

对比 .stringify() .parse()
定义 json对象->字符串 字符串->json对象
语法 JSON.stringify(value [, replacer] [, space]) JSON.parse(text[, reviver])
parse用于从一个字符串中解析出json对象

1
var str = '{"name":"huangxiaojian","age":"23"}'

结果:

1
JSON.parse(str)
1
2
3
4
5
Object

1. age: "23"
2. name: "huangxiaojian"
3. proto: Object

注意:单引号写在{}外,每个属性名都必须用双引号,否则会抛出异常。

stringify()用于从一个对象解析出字符串

1
var a = {a:1,b:2}

结果:

1
JSON.stringify(a)
1
"{"a":1,"b":2}"

JSON.stringify()

JSON.stringify(value)

对象转化为字符串输出

1
2
3
4
5
6
var data = [
{name: "1", sex:1, age: 1},
{name: "2", sex:0, age: 2},
{name: "3", sex:1, age: 3}
];
console.log(JSON.stringify(data));
1
[{"name":"1","sex":1,"age":1},{"name":"2","sex":0,"age":2},{"name":"3","sex":1,"age":3,"info":{"sex":"male"}}]
JSON.stringify(value [, replacer])

输出部分数据

1
2
3
4
5
6
var data = [
{name: "1", sex:1, age: 1},
{name: "2", sex:0, age: 2},
{name: "3", sex:1, age: 3}
];
console.log( JSON.stringify(data, ["name", "sex"]));
1
[{"name":"1","sex":1},{"name":"2","sex":0},{"name":"3","sex":1}]
JSON.stringify(value [, replacer][, space])
1
2
3
4
5
6
7
8
9
10
11
12
13
var data = [
{name: "1", sex:1, age: 1},
{name: "2", sex:0, age: 2},
{name: "3", sex:1, age: 3,info:{sex:'male',getSex:function(){return 'sex';}}}
];

var censor = function(key,value){
if(typeof(value) == 'function'){
return Function.prototype.toString.call(value)
}
return value;
}
console.log(JSON.stringify(data,censor,4))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[
{
"name": "1",
"sex": 1,
"age": 1
},
{
"name": "2",
"sex": 0,
"age": 2
},
{
"name": "3",
"sex": 1,
"age": 3,
"info": {
"sex": "male",
"getSex": "function (){return 'sex';}"
}
}
]

JSON.parse()

JSON.parse(text)
1
2
var data = '[{"name":"1","sex":1,"age":1},{"name":"2","sex":0,"age":2},{"name":"3","sex":1,"age":3}]';
JSON.parse(data);

这里写图片描述

JSON.parse(text[, reviver])
1
2
3
4
5
6
7
8
var data = '[{"name":"1","sex":1,"age":1},{"name":"2","sex":0,"age":2},{"name":"3","sex":1,"age":3}]';
var str_json = JSON.stringify(JSON.parse(data), function (k, v) {
if (k === "sex") {
return ["女", "男"][v];
}
return v;
});//sex 0,1->女,男
JSON.parse(str_json);

这里写图片描述

jQ操作json

.serialize()方法
1
2
格式:var data = $("#formID").serialize();
功能:将表单内容序列化成一个以&拼接的字符串,键值对的形式,name1=val1&name2=val2&,空格以%20替换。

这里写图片描述

.serializeArray()方法
1
2
格式:var jsonData = $("#formID").serializeArray();
功能:将页面表单序列化成一个JSON结构的对象。注意不是JSON字符串。

 这里写图片描述

.$.param()方法
1
2
格式:var string = $("#formID").param();
功能:可以把json格式数据序列化成字符串形
1
2
var obj={a:1,b:2};
$.param(obj);
1
"a=1&b=2"
自定义方法.serializeJson()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
格式:var jsonData = $("#formID").serializeJson();
功能:serializeArray()方法的扩展,格式转换为键值对name:val。

$.fn.serializeJson= function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function(){
if(o[this.name]){
if(!o[this.name].push){
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value ||'');
} else {
o[this.name] = this.value || '';
}
});
return o;
};

这里写图片描述

Donate comment here
Title - Artist
0:00