江在川上曰:js中的JSON解析和序列化

江在川上曰:js中的JSON解析和序列化

JSON解析和序列化

JSON是javascript的一个严格的子集,利用了javacript中的一些模式来表示结构化数据。他只是一种数据格式,并非一种编程语言。

JSON语法

JSON可以表示三种类型的值。

类型说明
简单值可以在JSON使用String、Number、Boolean和null,但是不能够使用undefined。
对象是一组无序的键值对,值可以是简单值、也可以是对象、数组。
数组是一组有序的值的序列,可以通过索引索引值,值可以是简单值、也可以是对象、数组。
var myJson = {
	"name":"jesse",
	"age":"12",
	"score":{
		"Chinese":"98",
		"Math":"99",
		"English":"100"
	},
	"goods":[
		{"name":"paper","price":"20"},
		{"name":"pencil","price":"2"},
		{"name":"book","price":"1"}
	]
}

切记:同一个json对象不能出现同名的属性,必须保持唯一性。

JSON解析

语法:JSON.parse(text,[reviver])

作用:将javascript表示的JSON字符串转为JSON对象

参数:

  • text: 必选,一个有效的JSON字符串
  • reviver:可选,一个还原函数,对象中的每一个成员都将使用该函数

返回值:一个对象或数组

let myString = '{"name":"jesse","age":"12","score":{"Chinese":"98","Math":"99","English":"100"},"goods":[{"name":"paper","price":"20"},{"name":"pencil","price":"2"},{"name":"book","price":"1"}]}';
JSON.parse(myString)

得到:

{
	"name":"jesse",
	"age":"12",
	"score":{
		"Chinese":"98",
		"Math":"99",
		"English":"100"
	},
	"goods":[
		{"name":"paper","price":"20"},
		{"name":"pencil","price":"2"},
		{"name":"book","price":"1"}
	]
}

JSON序列化

语法:JSON.string(value,[replacer],space)

作用:将javascript表示的json对象转为json字符串

参数:

  • value:必选,需要转换的json对象
  • replacer:可选,过滤器,用于转换结果的函数或数组
  • space:可选,用于控制结果中的缩进和空白符。
  • 返回值:一个包含json文本的字符串
var myJson = {
            "name": "jesse",
            "age": "12",
            "score": {
                "Chinese": "98",
                "Math": "99",
                "English": "100"
            },
            "goods": [
                { "name": "paper", "price": "20" },
                { "name": "pencil", "price": "2" },
                { "name": "book", "price": "1" }
            ]
        } 
JSON.stringify(myJson)

得到:

{"name":"jesse","age":"12","score":{"Chinese":"98","Math":"99","English":"100"},"goods":[{"name":"paper","price":"20"},{"name":"pencil","price":"2"},{"name":"book","price":"1"}]}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值