1、 JSON 是存储和交换文本信息的语法。类似 XML。 JSON 比 XML 更小、更快,更易解析。JSON和XML类型,都是一种结构化的数据表示方式,所以JSON并不是JavaScript独有的数据格式。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JSON语法</title>
</head>
<body>
</body>
<script>
//JavaScript 中对象表示方法:
var abc = {
position:'web前端',
age:20
};
//JSON 中对象表示方法: 需要加上双引号,而且不存在赋值。
{
"position":"web前端",
"age":20
};
//JavaScript 中数组表示方法:
var def = ['web',20,'前端'];
//JSON 中对象表示方法: 需要加上双引号,而且不存在赋值。
['web',20,'前端'];
// 一个项目中后台返回得到数据,数组结合对象
[
{
"MONTH": "02",//月数
"VALUE": 0//数量
},
{
"MONTH": "03",
"VALUE": 0
}
]
</script>
</html>
2、JS对象——>Json字符串: json_str = JSON. stringify(obj)
// JS对象——>Json字符串
var abc = [{position : 'web前端', age : 20}]
var json = JSON.stringify(abc);
alert(json);
弹出结果为:[{"position":"web前端","age":20}]
在序列化JSON的过程中,stringfy()方法还提供了第二个参数,第一个参数可以是一个数组,也可以是一个函数,用于过滤,例如下边代码中alert的结果显示为position以及number的值,过滤掉了age。第二个参数则表示在JSON字符串中是否保留缩进。
var abc = [{position : 'web前端', age : 20, number : 66},{position : '开发工程师', age : 18, number : 55}];
var json = JSON.stringify(abc, ['position', 'number'], 4);
alert(json);
3、Json字符串——>JS对象 :obj = JSON.parse(json_str)
var abc = [{"position" : "web前端", "age" : 20, "number" : 66},{"position" : "开发工程师", "age" : 18, "number" : 55}];
// 必须是双引号,否则会报错
var json = JSON.parse(abc);
alert(json);
这个会报错( Unexpected token o in JSON at position 1 at JSON.parse )因为本身就是对象,不需要再转换。
4、在JS数组中添加JSON数据
personInfo : [];
for(var i = 0; i < _STAGE.passengerInfoArray.length; i++){
var name = _STAGE.passengerInfoArray[i];
var person = {v:name, text:name};
this.personInfo.push(person);
}