1. json 是什么?2. JSON 的语法规则是怎样的?

{ "name": "xdr630", "favorite": "programming" }

3. JSON 和 XML

JSON常被拿来与XML做比较,因为JSON 的诞生本来就多多少少要有取代XML的意思。相比 XML,JSON的优势如下:

两者比较

{ "name":"兮动人", "age":22, "fruits":["apple","pear","grape"] }

<root> <name>兮动人</name> <age>22</age> <fruits>apple</fruits> <fruits>pear</fruits> <fruits>grape</fruits> </root>

4. JSON的解析和生成(JSON 和 JS 对象互转)
  1. 要实现从JSON字符串转换为JS对象,使用 JSON.parse() 方法:

<script> var str = '{"name": "兮动人","age":22}'; var obj = JSON.parse(str); console.log(obj); </script>

javajson包有哪些(0基础小白深入掌握Json)(1)

要实现从JS对象转换为JSON字符串,使用 JSON.stringify() 方法:

<script> var str = '{"name": "兮动人","age":22}'; var obj = JSON.parse(str); console.log(obj); var jsonstr = JSON.stringify(obj); console.log(jsonstr); </script>

javajson包有哪些(0基础小白深入掌握Json)(2)

5、JSON格式规定

javajson包有哪些(0基础小白深入掌握Json)(3)

5.1、对象(0bject)

对象用大括号(“{}”)括起来,大括号里是一系列的“名称/值对”,请看概念图。

javajson包有哪些(0基础小白深入掌握Json)(4)

两个并列的数据之间用逗号(“,”)隔开,注意两点:

使用英文的逗号(“,”),不要用中文的逗号(“,”)

最后一个“名称/值对“之后不要加逗号

5.2、数组(Array)

javajson包有哪些(0基础小白深入掌握Json)(5)

例如,以下的数组是合法的:

[1,2,"three","four",true,false,null,[1,2],{"name":"兮动人"}]

javajson包有哪些(0基础小白深入掌握Json)(6)

5.3、名称/值对(Name/Value)

javajson包有哪些(0基础小白深入掌握Json)(7)

字符串(string)的规则如下:

  1. 英文双引号括起来,不能用单引号,也不能没有。
  2. 字符串中不能单独出现双引号(”)和右斜杠(“\“)。
  3. 如果要打双引号或右斜杠,需要使用“右斜杠 字符”的形式,例如\”和\\,其它的转义字符也是如此字符串的概念图。

javajson包有哪些(0基础小白深入掌握Json)(8)

6、字符串转化成对象

javajson包有哪些(0基础小白深入掌握Json)(9)

  1. 使用eval()
  2. 使用JSON.parse()
  3. 使用第三方库,例如JQuery等
6.1、 eval()

案例:eval()解析字符串

<script> var str = "console.log('hello')"; eval(str); </script>

javajson包有哪些(0基础小白深入掌握Json)(10)

<script> var str = '{"name":"兮动人","age":22}'; var obj = eval("(" str ")"); console.log(obj) </script>

6.2、JSON. parse()

案例:JSON字符串转换为JS对象

<script> var str = '{"name":"兮动人","age":22}'; var obj = JSON.parse(str) console.log(obj) </script>

javajson包有哪些(0基础小白深入掌握Json)(11)

案例:

<script> var str = '{"name":"兮动人","age":22}'; var obj = JSON.parse(str,fun); function fun(name,value){ console.log(name ":" value); return value } console.log(obj) </script>

javajson包有哪些(0基础小白深入掌握Json)(12)

可以做判断处理,当JSON字符串的 name=age 时,设置age的value=14

<script> var str = '{"name":"兮动人","age":22}'; var obj = JSON.parse(str,fun); function fun(name,value){ if (name ** "age") value = 14; return value } console.log(obj) </script>

javajson包有哪些(0基础小白深入掌握Json)(13)

,