json数据解析

JSON对象: JSON中对象(Object)以"{"开始, 以"}"结束. 对象中的每一个item都是一个key-value对, 表现为"key:value"的形式, key-value对之间使用逗号分隔. 如:{"name":"coolxing", "age"=24, "male":true, "address":{"street":"huiLongGuan", "city":"beijing", "country":"china"}}. JSON对象的key只能是string类型的, 而value可以是string, number, false, true, null, Object对象甚至是array数组, 也就是说可以存在嵌套的情况.


JSON数组: JSON数组(array)以"["开始, 以"]"结束, 数组中的每一个元素可以是string, number, false, true, null, Object对象甚至是array数组, 数组间的元素使用逗号分隔. 如["coolxing", 24, {"street":"huiLongGuan", "city":"beijing", "country":"china"}].


解析JSON对象:

如:{\"name\":\"coolxing\", \"age\"=24, \"male\":true, \"address\":{\"street\":\"huiLongGuan\", \"city\":\"beijing\", \"country\":\"china\"}}

JSONObject jsonObject = new JSONObject(json); 

String name = jsonObject.getString("name");  

int age = jsonObject.getInt("age");  

boolean male = jsonObject.getBoolean("male");  

JSONObject addressJSON = jsonObject.getJSONObject("address");  

String street = addressJSON.getString("street");  

String city = addressJSON.getString("city");  

String country = addressJSON.getString("country");  

Address address = new Address(street, city, country);  

Person person = new Person(name, age, male, address);  



解析JSON数组:

如:[{\"name\":\"coolxing\", \"age\"=24, \"male\":true, \"address\":{\"street\":\"huiLongGuan\", \"city\":\"beijing\", \"country\":\"china\"}}, {\"name\":\"min\", \"age\"=20, \"male\":false, \"address\":{\"street\":\"heiShiJiao\", \"city\":\"daLian\", \"country\":\"china\"}}]

List<Person> persons = new ArrayList<Person>();  

JSONArray jsonArray = new JSONArray(json);  

for(int i = 0; i < jsonArray.length(); i++) {  

JSONObject jsonObject = jsonArray.getJSONObject(i);  

String name = jsonObject.getString("name");  

int age = jsonObject.getInt("age");  

boolean male = jsonObject.getBoolean("male");  

JSONObject addressJSON = jsonObject.getJSONObject("address");  

String street = addressJSON.getString("street");  

String city = addressJSON.getString("city");  

String country = addressJSON.getString("country");  

Address address = new Address(street, city, country);  

Person person = new Person(name, age, male, address);  

persons.add(person); }  



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值