json数组

时间:2024-07-06 12:04:38
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>json数组</title>
<script src="js/jquery.min.js"></script>
<script>
//普通数组写法
var box = [{name: 'Linda', age: 28}, {name: 'Bob', age: 20}];
// alert(box);
//json数组写法(相比之下就是比普通的数组多两组引号)切记:键是双引号,否则会出错
var arr = [{"name":"Tony","age":20},{"name":"Jack","age":26}];
// var json = JSON.stringify(box);//转换成json字符串
// alert(json);//这里其实是有双引号的,只是我们看不到 // 在序列化 JSON 的过程中,stringify()方法还提供了第二个参数。第一个参数可以是一个
// 数组,也可以是一个函数,用于过滤结果。第二个参数则表示是否在 JSON 字符串中保留缩
// 进。
// var json = JSON.stringify(box, ['name', 'age'], );//输出结果是数组box所有代码原样输出,首行缩进4个字符 // 如果不需要保留缩进,则不填即可;如果不需要过滤结果,但又要保留缩进,则
// 将过滤结果的参数设置为 null。如果采用函数,可以进行复杂的过滤。
var json = JSON.stringify(arr, function (key, value) {
switch (key) {
case 'name' :
return 'Mr. ' + value;
case 'age' :
return value + '岁';
default :
return value;
}
}, 4);//4表示首行缩进:4
alert(json); //自定义过滤数组使用 toJSON()方法,返回某组对象中的指定的值 var list=[{"name":"Linda","age":20,"height":170,toJSON:function(){
return this.name;
}},{"name":"Bob","age":20,"height":180,toJSON:function(){
return this.height;
}}];
alert("list:"+JSON.stringify(list));//都是使用JSON.stringify方法解析数组的,否则输出效果是object
   JSON 字符串方法 parse()也可以接受第二个参数,这样可以在还原出 JavaScript 值
// 的时候替换成自己想要的值。注意引号的写法,否则输出会报错
var list1 = '[{"name" : "Tony","age" : 1},{"name" : "b","age" : 2}]';
var json1 = JSON.parse(list1, function (key, value) {
if (key == 'name') {
return 'Mr.' + value;
} else {
return value;
}
});
alert(json1[0].name);//输出结果:Mr.Tony,第一个下标

    </script>
</head>
<body> </body>
</html>