json解析
特点:相对xml,更加节省空间
(1)json对象:{"key1":"value1","key2":"value2"}
a. 以{}开始和结束
b. key必须是字符串,value可以是基础数据类型、String、json对象、json数组
c. 每条数据以逗号分隔
例子:
{"name":"小明","age":25,"married":"true"}
(2)json的解析
//根据传入的字符串,得到JSONObject类型对象
JSONObject jsonObject = new JSONObject(str);
//根据key,获取对应的数据
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
boolean b = jsonObject.getBoolean("married")
//向jsonOnject中传入数据
jsonObject.put("name","小红");
jsonObject.put("age",20);
jsonObject.put("married","false");
(3)JSONArray json数组
a. 以[]开始和结束
b. 每一条数据都是一个jsonObject
c. 每条数据以逗号分隔
例子:
[{"name":"小明","age":25,"sex":"male"},{"name":"小红","age":23,"sex":"female"}]
解析一条JSONArray 格式的数据
//根据传入的字符串得到一个JSONArray 类型的对象
JSONArray jsonArray = new JSONArray (str);
for(int i=0; i<jsonArray.length;i++){
//根据下标得到JSONObject对象
JSONObject jsonObject = jsonArray.getJSONObject(i);
//根据key值得到对应的数据
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
String sex = jsonObject.getString("sex");
}
//向JSONArray 中传入数据
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject1 = new JSONObject();
JSONObject jsonObject2 = new JSONObject();
jsonObject1.put("name","小黑");
jsonObject2.put("name","小白");
jsonArray.put(jsonObject1);
jsonArray.put(jsonObject2);