二、JSON拓展

二、JSON拓展

2.1 parse

该方法是将json字符串解析为js对象的

使用方式:

  • JSON.parse(str, fn);

    • str:要处理的字符串

    • fn:要处理的函数

      • 返回值就是本次处理的结果

        • 有两个参数:

          • 第一个参数:属性名称

          • 第二个参数:属性值

从外部向内部遍历,从叶子节点到根节点

1
2
3
4
5
6
// 定义json字符串
var str = '{"a": 1, "b": "2", "c": {"d": 3}}';

// 将 str 转为 js 对象
var result = JSON.parse(str);
console.log(result);

UlrgpQ.png

1
2
3
4
5
6
7
8
// 定义json字符串
var str = '{"a": 1, "b": "2", "c": {"d": 3}}';

// 将 str 转为 js 对象
var result = JSON.parse(str, function(key, value){
console.log(arguments);
});
console.log(result);

Ulr57V.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 定义json字符串
var str = '{"a": 1, "b": "2", "c": {"d": 3}}';

// 将 str 转为 js 对象
var result = JSON.parse(str, function(key, value){
console.log(arguments);
// 对属性值 value进行判断
if (typeof value === "string"){
return +value;
}
return value;
});
// 我们希望将字符串转为数字
console.log(result);

UlrTtU.png

2.2 stringify

该方法用于将js对象转为json字符串

使用方式:

  • JSON.stringify(obj, fn);

    • obj:要处理的对象

    • fn:处理的函数

      • 返回值就是本次处理的结果

      • 有两个参数:

        • 第一个参数:属性名

        • 第二个参数:属性值

从内部到外部遍历,从根节点到叶子节点

1
2
3
4
5
6
7
8
9
10
11
12
// 定义对象
var obj = {
a: 1,
b: "2",
c: {
d: 3
}
}

// 将obj转为json字符串
var result = JSON.stringify(obj);
console.log(result);

UlTU1I.png

1
2
3
4
var result = JSON.stringify(obj, function(){
console.log(arguments);
});
console.log(result);

UlTBB8.png

1
2
3
4
5
var result = JSON.stringify(obj, function(key, value){
console.log(arguments);
return value;
});
console.log(result);

UlT6hj.png

1
2
3
4
5
6
7
8
9
var result = JSON.stringify(obj, function(key, value){
console.log(arguments);
// 我们想让所有的属性值作为数字表示,要对value进行判定
if (typeof value === "string"){
return +value;
}
return value;
});
console.log(result);

UlTRcq.png

点击查看

本文标题:二、JSON拓展

文章作者:Mango

发布时间:2020年07月14日 - 12:55:34

最后更新:2020年07月15日 - 13:27:07

原始链接:https://mango185.github.io/post/89e6caba.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------------本文结束 感谢您的阅读-------------------