关闭

android解析json数据的详解实例

257人阅读 评论(0) 收藏 举报
分类:

========================!友情提示:

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:85182次
    • 积分:2011
    • 等级:
    • 排名:第19926名
    • 原创:49篇
    • 转载:110篇
    • 译文:56篇
    • 评论:8条
    最新评论