json简介及josn数组中取字符

时间:2024-01-15 16:35:50

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");