掰玉米基地

你懂JSON么?

你懂JSON么?

前端常做的事就是和后台调接口,总会有人告诉你,转成JSON格式。。。可是有时候本来就是JSON了,为什么还要转JSON。
不知道我对JSON的理解对不对,不对的可以指正。

什么是JSON

  • JavaScript Object Notation 就是我们所说的JSON
  • JSON 是存储和交换文本信息的语法。类似 XML。
  • JSON 比 XML 更小、更快,更易解析。
  • 你在js中写 var a = {“a”:”1”},js会直接解析成js对象{a:”1”}

JSON的值可以有哪些

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null

JSON对象

1
{ "firstName":"John" , "lastName":"Doe" }

JSON数组(放在中括号内)

1
2
3
4
5
6
7
{
"employees": [//employees的值就是数组
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}

JSON 使用 JavaScript 语法

因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。
通过 JavaScript,您可以创建一个对象数组,并像这样进行赋值:

1
2
3
4
5
6
var employees = [
{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName": "Carter" }
];
employees[0].lastName;

注意:按我的理解,上面代码虽然是JS语法,但是使用了JSON格式,如果最后要转成JSON和后台对接,如下:

1
2
3
4
5
{"employees":
[{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName": "Carter" }]
}//可以使用js的eval函数解析成js对象

这就是JSON的数组表达方式,如果构造成这样,就是JSON格式,不需要再转JSON了