JSON概述

这里说的所有内容都属于json字符串,属于String类型

JSON的基本格式

json从总体上其实就分为两种格式,一种是jsonObject类型的字符串,另一种是jsonObject的组合jsonArray类型的字符串

jsonObject格式的json字符串

jsonObject基本格式
最外层是一个大括号,里面由key-value键值对组成,key要有双引号,value可以使一下几种
1 String 需要加双引号

{"name": "a","msg": "ok"}

2 Number 不需要双引号

{"name": "a","msg": 1}

3 Boolean 传入true或者false,不需要双引号

{"name": "a","msg": true}

4 传入null,不加双引号,表示空值

{"name": "a","msg": null}

嵌套的jsonObject格式的json字符串

1 jsonObject嵌套jsonObject
即外层是一个jsonObject,里面每一个key的值还是一个jsonObject

{
 "name": "a",
 "msg": "ok",
 "parent":{
              "mother":"aaa"
              "father":"bbb"
            }
}

2 jsonObject嵌套jsonArray
即外层是jsonObject格式,里面由一个key对应的value是jsonArray类型的数据

{
 "name": "a",
 "msg": "ok",
 "parent":[{
              "mother":"aaa"
              "father":"bbb"
            },
             {
              "mother":"aaa"
              "father":"bbb"
            }]
}
jsonArray格式的json字符串

这种类型的json字符串的基本格式如下

[value1,value2,value3.......]

其中每个value都可以为String ,Number,ture,false,null,jsonObject格式的字符串,jsonArray格式的字符串
1 String 需要加双引号

["aaa","bbb","ccc"]

2 Number 不需要双引号

[1,2,3]

3 Boolean 传入true或者false,不需要双引号

[true,false,false]

4 null,不加双引号,表示空值

[null,null,null]

5 jsonObject格式的字符串

[
  {"name": "a","msg": "ok"},
  {"name": "b","msg": "ok"},
  {"name": "c","msg": "ok"}
]

2 jsonArray格式的字符串
即外层是jsonObject格式,里面由一个key对应的value是jsonArray类型的数据


[
 [
  {"name": "a","msg": "ok"},
  {"name": "b","msg": "ok"},
  {"name": "c","msg": "ok"}
 ],
 [
  {"age": "1","msg": "ok"},
  {"age": "2","msg": "ok"},
  {"age": "3","msg": "ok"}
 ]
]
总结

jsonObject格式的对象和jsonArray格式的对象可以彼此嵌套,也可以互相嵌套,但是无论嵌套多少层,无论怎么嵌套,只要最外层是{}就属于jsonObect类型字符串,只要最外层是[] 就数据jsonArray类型的字符串。

你可能感兴趣的:(JSON概述)