这里说的所有内容都属于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类型的字符串。