JSON

JSON 是一种轻量级的数据交换格式。采用完全独立于编程语言的文本格式来存储和表示数据。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

语法

JSON的语法可以表示以下三种类型的值
1、简单值
使用与JavaScript相同的语法,可以在JSON中表示字符串、数值、布尔值和null,但JSON不支持JavaScript中的特殊值undifined。比如:

5
"hello world"

2、对象
对象作为一种复杂的数据类型,表示一组有序的键值对。每个键值对中的值可以是简单值也可以是复杂的数据类型。

var obj = {
    name:'234',
    'value':234,
    "is":true
}
{
 "name":'234',
 "age":23   
}

如上分别是js对象和JSON对象。需要注意的是JSON对象的键必须是字符串类型的,而js对象就没有这种要求,比较自由灵活
3、数组
数组也是一种复杂的数据类型,表示一组有序的值的列表。

["hi",23,true]
[{"name":'33',"describe":{"age":23}}]

JSON数组可以是简单的值的数据,也可以是复杂数据集合。

解析与序列化

序列化
JSON的解析与序列化主要就是JSON.stringify()和JSON.parse()方法。前者是将JSON对象序列化成字符串。常见用法:

JSON.stringify({name:'234',"age":23})
"{"name":"234","age":23}"

此外stringify方法还可以接收2个参数。

JSON.stringify({name:'234',"age":23},['name'])
"{"name":"234"}"//第二个参数是数组表示只序列化数组中的键
var data = {
  name:"niuzai",
  info:{
    age:18,
    sex:"male"
  }
};

JSON.stringify(data, function(key, val){ //过滤函数
  console.log("key is %s", key);
  console.log("val is %s", typeof(val));
  return val;
});
key is 
 val is object
 key is name
 val is string
 key is info
 val is object
 key is age
 val is number
 key is sex
 val is string
var data = {name:'234',age:11}
undefined
JSON.stringify(data)
"{"name":"234","age":11}"
JSON.stringify(data,null,4) //第三个参数用于控制结果中的缩进和空白符
"{
    "name": "234",
    "age": 11
}"

解析
解析主要是将JSON字符串解析为JSON对象。用JSON.parse()方法
继续使用上文的例子

var data = {name:'234',age:11}
var b = JSON.stringify(data)
JSON.parse(b)
{name: "234", age: 11}

可以看到经过解析后的值类型还是和原来的一致。
我们通常可以使用JSON.parse()来判定一个字符串是不是JSON字符串,通过try catch。如果有异常则此字符串非JSON字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值