简单来说:有三个人,小明,小亮,小红,小红是小亮的妹妹,小明喜欢小红,小明为了得到小亮妹妹的欢心,小明主动曝出了自己的重要信息给小亮,
{ name:'小明', height:'185cm', weight:'70kg', }
希望小亮可以把这些信息给到他妹妹。
JS转换成JSON
{ "name":'小明', "height":'185cm', "weight":'70kg', }
小亮在中间起到了一个沟通桥梁的作用,类似于JSON的作用。我们现在把小明看作JS,把小红看作C++。我们知道JS是前端语言,而后端语言又有很多种,这里大括号里面的是JS里的对象,然后C++里的对象又是另外一回事,于是JSON作为一种通用的数据格式就有它的用处了,大家都可以使用JSON这种格式来进行数据的传输。
JS对象转变为JSON格式,那么C++就会把JSON内容转化为自己能处理的数据存储格式。这样我们就不用担心不同语言有不同的语法和数据存储方式了。
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时 JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的API或工具包。
必须使用双引号 "
包含键值
// 键值对的集合,值的有序列表 var JsonObj = { "name":"Bob", "like":["看书","电影","跑步"] }
数组
var JsonArr = [ { "name": "tom", "type": "cat" }, { "name": "jack", "type": "mouse" } ]
对象
var JsonObj = { "like": ["看书", "电影", "跑步"], "book": ["数字城堡", "刻意练习", "老人与海"] }
字符串转对象
var jsonObject= JSON.parse(jsonstr);
对象转字符串
var jsonstr =JSON.stringify(jsonObject);
JSON | JS对象 | |
---|---|---|
键名字符串 | 必须双引号 | 键名双引号,单引号或者无引号 |
数据类型 | 没有NaN、undefined、Infinity和函数 | 多种类型都有 |
逗号 | 最后一个键名对应的值是不能有 | 最后一个可加上 |