一、JSONObject和JSONArray的数据表示形式
JSONObject的数据是用 { } 来表示的,
例如: { "name" : "佩奇", "weight" : 50 }
而JSONArray,顾名思义是由JSONObject构成的数组,用 [ { } , { } , ...... , { },"字符串" ] 来表示
例如: [ { "name" : "佩奇", "weight" : 50 } , { "name" : "麦兜", "weight" : 50 ,"height" : 180} ,"小猪信息"] ;
表示了包含2个JSONObject的JSONArray。
可以看到一个很明显的区别,一个用的是 { } ,一个最外面用的是 [ ] ;
二、JSONObject添加元素put(key,value)方法和调用元素方法get(key)
1.put(key,value)方法
put(key,value)其中key是键名,一般为字符串,用于调用后边的value,
value的值为String或JSONObject或JSONArray对象
2.get(key)
get(key),key为键名
getJSONObject(key),key为键名,返回JSONObject对象
getJSONArray(key),key为键名,返回JSONArray对象
实例如下:
JSONObject student = new JSONObject();
/*
* put(key,value)其中key是键名,一般为字符串,用于调用后边的value,
* value的值为String或JSONObject或JSONArray对象
*/
//put(key,value)添加String对象
student.put("name", "小明");
student.put("sno", "20160000");
JSONObject address = new JSONObject();
address.put("city", "石家庄市");
address.put("country", "长安区");
//put(key,value)添加JSONObject对象
student.put("address", address);
JSONArray family = new JSONArray();
JSONObject father = new JSONObject();
father.put("name", "小明老爸");
father.put("age", 40);
JSONObject mother = new JSONObject();
mother.put("name","小明老妈");
mother.put("age",41);
/*add(value)是JSONArray对象添加元素方法
* value可以是String和JSONObject对象或JSONArray对象
*/
family.add(father);
family.add(mother);
//put(key,value)添加JSONArray对象
student.put("family", family);
/*
* JSONObject对象调用元素用get(key)方法
* key为键名
*/
System.out.println(student.get("name"));
//输出结果 小明
System.out.println(student.get("sno"));
//输出结果 20160000
/*
* JSONObject对象(jsonObject)调用JSONObject对象元素(两种方法)
* 1.jsonObject.getJSONObject(key),key为键名,返回JSONObject对象
* 2.(JSONObject)jsonObject.get(key),key为键名,获得JSONObject对象
*
*/
System.out.println(student.getJSONObject("address"));
System.out.println((JSONObject)student.get("address"));
//以上两种获取结果相同都是
//{"city":"石家庄市","country":"长安区"}
/*
* JSONObject对象(jsonObject)调用JSONArray对象元素(两种方法)
* 1.getJSONArray(key),key是键名,返回JSONArray对象
* 2.(JSONArray)jsonArray.get(key),key是键名,获取JSONArray对象
*/
System.out.println(student.getJSONArray("family"));
System.out.println((JSONArray)student.get("family"));
//以上两种获取结果相同都是
//[{"name":"小明老爸","age":40},{"name":"小明老妈","age":41}]
三、如何从JSONArray添加元素方法add(value)和调用元素的方法get(i)
1.add(value)方法
value可以是String对象,JSONArray对象,JSONObject对象
2.get(i)方法
i是元素下标,从0开始
3.getJSONObject(i)方法
获取JSONObject对象元素,i是元素下标,从0开始
3.getJSONArray(i)方法
获取JSONArray对象元素,i是元素下标,从0开始
示例如下:
JSONArray pigs = new JSONArray();
JSONObject pig1 = new JSONObject();
pig1.put("name", "佩奇");
JSONObject pig2 = new JSONObject();
pig2.put("name", "猪猪侠");
pigs.add("八戒");
pigs.add(pig1);
pigs.add(pig2);
/*
* 这样构造的JSONArray对象如下
* ["八戒",{"name":"佩奇"},{"name":"猪猪侠"}]
*/
System.out.println(pigs.get(0));
//结果为 八戒
//因为JSONArray对象pigs的第二个元素类型是JSONObject,所以可以使用getJSONObject(key)方法
System.out.println(pigs.getJSONObject(1));
//结果如下
//{"name":"佩奇"}
补充
student = {"name":"小明","sno":"20160000"}
例如获取姓名student.name
示例
family = [{"name":"小明老爸","age":40},{"name":"小明老妈","age":41}]
获取第一个元素:{"name":"小明老爸","age":40}
family[0]
JSONObject和JSONArray所需j全部Jar包链接
百度网盘 请输入提取码
提取码:uhw1
参考:https://www.cnblogs.com/wei-jing/p/10305465.html