1.json字符串就是字符串,只不过格式是Json格式的,以键值对的形式存在,键和值可以是字符串,数字,空值,数组等。
json对象在花括号中书写,一个json对象包含多个键值对,json对象以花括号开始,花括号结束。
{"name1":"value1","name2":"value2","name3":"value3"}
2.json数组在方括号中书写,一个josn数组里面包含多个json对象,方括号开始,方括号结束。
[{"name1":"value1","name2":"value2"},{"name1":"value1","name2":"value2"}]
3.json字符串中取name2的值
String json = "{\'name1\':\'value1\',\'name2\':\'value2\'}";
将json字符串转换成json对象,再取值
JSONObject jb = JSONObject.fromObject(json);
String name = jb.getString("name2");
4.json数组中取值name12对应的值
String json1 = "{\'name1\':{\'name2\':[{\'name3\':\'value3\',\'name4\':\'value4\'},{\'name5\':\'value5\',\'name6\':\'value6\'}],\'name7\':[{\'name8\':\'value8\',\'name9\':\'value9\'},{\'name12\':\'value12\',\'name13\':\'value13\'}]},\'name10\':\'value10\',\'name11\':\'value11\'}";
先转换成json对象
JSONObject jb1 = JSONObject jb1 = JSONObject.fromObject(json1);
层层剥离,取name1对应的值
JSONObject jb2 = jb1.getJSONObject("name1");
取到的值是name1冒号后面对应的值,是以json对象的形式存在的,然后再取name7对应的值,name7对应的值是json数组,所以:
JSONArray ja1 = jb2.getJSONArray("name7");
ja1的值为 [{\'name8\':\'value8\',\'name9\':\'value9\'},{\'name12\':\'value12\',\'name13\':\'value13\'}]
要取到name12对应的值,此处应该用循环去取,
先定义一个空的json对象:JSONObject jb3 = null;
for(int i = 0;i<ja1.length();i++){
jb3 = ja1.getJSONObject(i);
}
如果将jb3的值输出一下,输出为{\'name8\':\'value8\',\'name9\':\'value9\'}和{\'name12\':\'value12\',\'name13\':\'value13\'}
再从jb3中取name12对应的值
String name = jb3.getString("name12");