您的位置:首页 > 移动开发 > Android开发

android解析json数据的详解实例

2015-07-08 09:50 711 查看
========================!友情提示:

get()取值不正确会抛出异常,必须用try catch或者throw包起

而opt()取值不正确则会试图进行转化或者输出友好值,不会抛出异常
=========================================================
Map maps=new HashMap();

maps.put("name1", new Person("name1",12));

maps.put("name2", new Person("name2",13));

maps.put("name3", new Person("name3",14));

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

persons.add(new Person("name4", 15));

persons.add(new Person("name5", 16));

persons.add(new Person("name6", 17));

maps.put("name4Object", persons);

Gson gson=new Gson();

String json = gson.toJson(maps);

Log.i("MainActivity",json );

//使用jsonObject获取到自己想要的字符串

try {

//整个从服务器解析出来的json字符串生成JSONObject对象,拿什么数据,这里是源头

JSONObject jsonObject=new JSONObject(json);

//例如这里要拿name2的对象

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

Log.i("MainActivity",name2 );

Person person2 = gson.fromJson(name2, Person.class);

Log.i("MainActivity",person2.toString() );

//此处通过上面的JsonObject对象获取JSONArray对象

JSONArray jsonArray = jsonObject.getJSONArray("name4Object");

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

Object object = jsonArray.get(i);

Person person = gson.fromJson(object.toString(), Person.class);

Log.i("MainActivity","array:"+person.name+"--"+person.age);

}

} catch (JSONException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

=============================这里是 log打印出来的日志=======================================

07-08 09:46:01.855: I

/MainActivity(9464): {"name1":{"name":"name1","age":12},"name2":{"name":"name2","age":13},"name4Object":[{"name":"name4","age":15},{"name":"name5","age":16},{"name":"name6","age":17}],"name3":{"name":"name3","age":14}}

07-08 09:46:01.862: I

/MainActivity(9464): {"age":13,"name":"name2"}

07-08 09:46:01.863: I

/MainActivity(9464): name213

07-08 09:46:01.864: I

/MainActivity(9464): array:name4--15

07-08 09:46:01.864: I

/MainActivity(9464): array:name5--16

07-08 09:46:01.865: I

/MainActivity(9464): array:name6--17
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: