android中有提供json的解析,但其JsonReader的SDK是从3.0之后才能使用的
其解析方法可参考http://developer.android.com/reference/android/util/JsonReader.html
对于低版本的我们可以使用一些外加包来方便实现解析
使用Gson包
com.google.gson.stream.JsonReader
下载地址:http://code.google.com/p/google-gson/downloads/list
文档Docs:http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/index.html
例如要解析的数据为
String jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]";
其解析方法可以如下:
try{ //如果需要解析JSON数据,首要要生成一个JsonReader对象 JsonReader reader = new JsonReader(new StringReader(jsonData)); reader.beginArray(); while(reader.hasNext()){ reader.beginObject(); while(reader.hasNext()){ String tagName = reader.nextName(); if(tagName.equals("name")){ System.out.println("name--->" + reader.nextString()); } else if(tagName.equals("age")){ System.out.println("age--->" + reader.nextInt()); } } reader.endObject(); } reader.endArray(); } catch(Exception e){ e.printStackTrace(); }
解析一个json对象到一个自定义对象,例如:
要解析String jsonData = "{\"name\":\"Michael\",\"age\":20}";
可以定义model类user
public class User { private String name ; private int age ; 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; } }
解析过程:
Gson gson = new Gson(); User user = gson.fromJson(jsonData, User.class); System.out.println("name--->" + user.getName()); System.out.println("age---->" + user.getAge());
补充:若要解析的json数据如下:
{ AList: [ { a1:1, a2:2, a3:3 }, { a1:11, a2:22, a3:33 } ], BList: [ { b1:1, b2:2, b3:3 }, { b1:11, b2:22, b3:33 } ], C: 0 }
定义如下类:
public class Model { private List<A> AList; private List<B> BList; private int C; public class A { private int a1; private int a2; private int a3; ......... } public class B { private int b1; private int b2; private int b3; ......... } ........ } //省略了get set
解析一组json对象到自定义对象
例如要解析的数据为:
String jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]";
解析到user,其定义如上,
解析过程为
public void parseUserFromJson(String jsonData){ Type listType = new TypeToken<LinkedList<User>>(){}.getType(); Gson gson = new Gson(); LinkedList<User> users = gson.fromJson(jsonData, listType); //用迭代器遍历users for (Iterator iterator = users.iterator(); iterator.hasNext();) { User user = (User) iterator.next(); System.out.println("name--->" + user.getName()); System.out.println("age---->" + user.getAge()); }
and check it :http://stackoverflow.com/questions/2779251/convert-json-to-hashmap-using-gson-in-java
对象-->JSON
假如我们有一个类Person:
public class Person {
public long id;
public String name;
public boolean isMale;
public String avatar;
}
通过一个Gson实例:
Gson gson = new Gson();
我们可以直接将一个Person实例转换成Json字符串:
Person person = new Person();
person.id= 111;
person.name= "张三";
person.isMale= true;
person.avatar= "http://aaaaaaaaa";
String jsonStr = gson.toJson(person);
Log.v("=============", jsonStr);
即使是List和Map也可以(以List为例):
ArrayList<Person> list = new ArrayList<Person>();
Person person = new Person();
person.id= 111;
person.name= "张三";
person.isMale= true;
person.avatar= "http://aaaaaaaaa";
list.add(person);
person = new Person();person.id= 222;
person.name= "李四";
person.isMale= false;
person.avatar= "http://bbbbbbbbb";
list.add(person);
String jsonStr = gson.toJson(list);
Log.v("=============", list);
可参考:http://iandroiddev.com/post/2011-10-08/5
本文来自:http://www.cnblogs.com/mybkn/archive/2012/05/18/2508306.html
相关推荐
本文将详细介绍Gon库以及如何在Python环境中下载、安装和使用它。 1. Gon库介绍: Gon库可能是一个功能丰富的Python模块,但具体的功能和用途需要查看其官方文档或源代码才能得知。通常,Python库会提供特定的功能...
若要安装和使用该库,用户通常会在命令行中输入`pip install gon`,如果需要安装的是特定版本,如1.0.0,则应输入`pip install gon==1.0.0`。在Python代码中,通过`import gon`来引入并使用这个库。 总的来说,"gon...
"WordPress主题:Gon v2.2.1响应式多功能主题2022年最新版 WordPress主题/WordPress插件/html网站模板/iOS app源码/安卓app源码 每天更新上传!" ---------- 每天更新发布最新WordPress主题、HTML主题、WordPress...
Gon gem —在您的js中获取Rails变量 如果您需要向js文件中发送一些数据,而又不想通过视图和解析进行漫长的工作,请使用此功能! 现在,您可以使用通过ajax轻松更新变量中的数据! 有了 , 和支持! 对于Sinatra可用...
浏览器中的 Rails Direct AWS S3 上传器以下是关于Heroku 教程(2015 年 2 月 17 日更新)之后的 Rails 4.2.1 工作示例:“在 Rails 中直接到 S3 图像上传” 对原始 Heroku 教程的更改: 使用将 S3 变量从 Ruby 传递...
GONMarkupParser是一款开源的代码库,专门设计用于解析和处理富文本。在现代软件开发中,富文本处理是一项常见的需求,特别是在用户界面、文档编辑、网页渲染等领域。富文本可以包含各种格式,如字体样式、颜色、...
贡不要仅仅使用另一个f2e构建工具。安装npm install -g Gon 用法创造[项目名称] 创建一个新项目,生成所有文件夹和文件。刚开发使用Webpack和Gulp处理的javascript,手写笔和pug文件启动代理服务器和项目。 应该与...
Android部分适配器一个与一起使用的简单android节适配器。用法在sample/签出示例应用程序,以查看其运行情况。 适配器希望您传递给它的集合已经按要分组的列进行排序。下载下载或通过Maven获取: < dependency> ...
梯度起源网络 该论文已在ICLR 2021上接受。 本文提出了一种新型的生成模型,该模型无需编码器即可快速学习潜在表示。... 隐式GON版本使用SIREN(具有周期性激活函数的隐式神经表示,Sitzmann等人,2020年)。
【医院消防安全隐患排查总结】 医院消防平安工作是保障医疗安全和患者生命安全的重要一环,通过对消防安全隐患的排查和整治,可以有效地预防火灾事故的发生,维护医院的稳定和正常运营。以下是对医院消防平安隐患...
gon-用于macOS公证的CLI和Go库gon是一个简单而简洁的工具,用于对macOS的CLI二进制文件进行。 gon可用作CLI,可以手动运行或在自动化管道中运行。 它也可以作为Go库嵌入在用Go编写的项目中。 gon可以签署和公证用...
基于google的json处理工具Gson英文帮助文档
作者:Artur Gonçalves 和 José Esteves 2014 年 5 月jar 文件夹中提供了一个已编译的可运行 .jar,其中包含源代码。 输入文件格式为 CSV,定义在 POO-requirements.pdf,第 7 页。 Usage:java poo.group4.Main ...
TikTok-UltimatePACK TikTokPACK包含 TikTok-Pack包含[点击!] 没有用户名列表 带有和不带有SessionID的用户检查器 1- Quad用户名 ...涡轮 ...如何使用?... 在Android中 ...来源:M3GON,J_Qatar和WeeX,由我编
gon2n 为n2n边缘和超节点使用绑定,管理守护程序和CLI。总览gon2n是用于n2n对等VPN的Go绑定,管理守护程序和CLI的集合。 n2n由两个主要组件构成: edge s,它们是管理属于社区(覆盖网络)的每个设备上的TUN / TAP...
使用 ,您可以拥有自己的无限和免费的正常运行时间监控器和状态页面,完全由GitHub存储库提供支持。 我们将“用作事件报告,将“用作正常运行时间监视器,并将“用作状态页面。 网址 状态 历史 响应时间 正常运行...
您还可以在 pdf 文件中找到教程,它是有关如何使用 SGA 代码的分步说明。 本文件中引用的部分和方程式参考了介绍 SGA 的论文: MS Gonçalves、RH Lopez、LFF Miguel,“搜索群算法:优化桁架结构的新元启发式方法...
【标题】"jordan:Nike Jordan Shop-Web Programming II-202021-GonçaloBarros Jaime Parreiral" 暗示这是一个关于网络编程的项目,特别是与创建耐克乔丹网上商店相关的课程或项目。贡萨洛·巴罗斯(Gonçalo Barros...
6. gon-child:这个子主题(gon-child)可能包含对原始主题的定制修改,以避免在更新父主题时丢失自定义内容。子主题是 WordPress 推荐的进行自定义的方式,可以保持主题的核心代码不受影响。 7. 文档:...
gon Argonaut是用于测试REST API响应的node.js测试框架。 测试是在JSON文件中编写的,并输入到node.js脚本中。 Argonaut可以异步或同步运行,可以选择直接将数据输出到控制台(仅同步)或回调URL(对于异步是强制性...