Android解析JSON数据的方法分析
程序员文章站
2024-03-04 17:53:59
本文实例讲述了android解析json数据的方法。分享给大家供大家参考,具体如下:
json作为一种“轻量”的数据结构传递数据,在js中有广泛的应用
google公司...
本文实例讲述了android解析json数据的方法。分享给大家供大家参考,具体如下:
json作为一种“轻量”的数据结构传递数据,在js中有广泛的应用
google公司对json的解析提供了gson.jar这个包,它不依赖于其他任何jar包;自从android3.0中已经合入了该解析器的功能,但之前的版本是没有的。
findviewbyid(r.id.parsebtn).setonclicklistener(new onclicklistener(){ @override public void onclick(view v) { jsondata = "[{\"name\":\"michael\",\"age\":20},{\"name\":\"mike\",\"age\":21}]"; mainactivity.parsejson(jsondata); } }); public static void parsejson(string jsonstr){ //如果要解析json数据,首先要有一个jsonreader对象 jsonreader jsonreader = new jsonreader(new stringreader(jsonstr)); try { //开始遍历数组(多个json对象) jsonreader.beginarray(); while(jsonreader.hasnext()){ //开始遍历json对象(含有多个属性) jsonreader.beginobject(); while(jsonreader.hasnext()){ string tagname = jsonreader.nextname(); if(tagname.equals("name")){ system.out.println("name --> " + jsonreader.nextstring()); }else if(tagname.equals("age")){ system.out.println("age --> " + jsonreader.nextstring()); } } //遍历json对象结束 jsonreader.endobject(); } //遍历数组结束 jsonreader.endarray(); } catch (ioexception e) { e.printstacktrace(); } }
将json格式转换为类的步骤如下:
//先定义一个类 public class user { public string getname() { return name; } public void setname(string name) { this.name = name; } public int getage() { return age; } public void setage(int age) { this.age = age; } } //只将一组数据转换的方法 findviewbyid(r.id.parseobj).setonclicklistener(new onclicklistener(){ @override public void onclick(view v) { string jsondata = "{\"name\":\"michael\",\"age\":20}"; gson gson = new gson(); user user = gson.fromjson(jsondata, user.class); system.out.println("name--->" + user.getname()); system.out.println("age---->" + user.getage()); } }); //将多组数据转换的方法 findviewbyid(r.id.parseobjs).setonclicklistener(new onclicklistener(){ @override public void onclick(view v) { string jsondata = "[{\"name\":\"michael\",\"age\":20},{\"name\":\"mike\",\"age\":21}]"; type listtype = new typetoken<linkedlist<user>>(){}.gettype(); gson gson = new gson(); linkedlist<user> users = gson.fromjson(jsondata, listtype); for (iterator iterator = users.iterator(); iterator.hasnext();) { user user = (user) iterator.next(); system.out.println("name--->" + user.getname()); system.out.println("age---->" + user.getage()); } } });
更多关于android相关内容感兴趣的读者可查看本站专题:《android文件操作技巧汇总》、《android编程开发之sd卡操作方法汇总》、《android开发入门与进阶教程》、《android资源操作技巧汇总》、《android视图view技巧总结》及《android控件用法总结》
希望本文所述对大家android程序设计有所帮助。