在Android中可以使用Gson解析JSON数据

首先,从 code.google.com/p/google-gson/downloads/list下载GsonAPI:

google-gson-1.7.1-release.zip

把gson-1.7.jar copy到libs(项目根目录新建一个libs文件夹)中。

可以使用以下两种方法解析JSON数据:

通过获取JsonReader对象解析JSON数据:

String jsonData = "[{\"username\":\"arthinking\",\"userId\":001},{\"username\":\"Jason\",\"userId\":002}]";try{JsonReader reader = new JsonReader(new StringReader(jsonData));reader.beginArray();while(reader.hasNext()){reader.beginObject();while(reader.hasNext()){String tagName = reader.nextName();if(tagName.equals("username")){System.out.println(reader.nextString());}else if(tagName.equals("userId")){System.out.println(reader.nextString());}}reader.endObject();}reader.endArray();}catch(Exception e){e.printStackTrace();}

通过把JSON数据映射成一个对象,使用Gson对象的fromJson()方法获取一个对象数组进行操作:

创建JSON数据对应的一个POJO对象User.java:

public class User {private String username ;private int userId ;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public int getUserId() {return userId;}public void setUserId(int userId) {this.userId = userId;}}

使用Gson对象获取User对象数据进行相应的操作:

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(user.getUsername());System.out.println(user.getUserId());}

如果要处理的JSON字符串只包含一个JSON对象,则可以直接使用fromJson获取一个User对象:

String jsonData = "{\"username\":\"arthinking\",\"userId\":001}";Gson gson = new Gson();User user = gson.fromJson(jsonData, User.class);System.out.println(user.getUsername());System.out.println(user.getUserId());

http://www.itzhai.com/android-to-parse-json-data-using-gson.htmlJSONObject allresult;

Gson的使用更加详细的例子:

http://www.360doc.com/content/11/0815/14/7322578_140545909.shtml

更多相关文章

  1. Storm——Android SQLite数据库管理类库
  2. Android 监听ContentProvider中数据的变化 Android 监听ContentP
  3. Android 存储字符串数据到txt文件
  4. android 数据持久化——File
  5. Android中Intent传递对象的两种方法(Serializable,Parcelable)!
  6. Android 代码实现查看SQLite数据库中的表
  7. 在android studio中用SQLiteOpenHelper()方法建立数据库
  8. android 联系人数据库一些知识点
  9. Android SQLcipher 数据库解密

随机推荐

  1. 吐槽:MySQL和Delphi2010的UTF8编码
  2. 无法运行查询:SQLSTATE [23000]:完整性约束
  3. 在woody上安装了mysql为什么没有开3306端
  4. 网易MySQL数据库工程师微专业学习笔记(十
  5. 用PHP比较PHP中的字符串
  6. Mysqlbackup&#160;3.9.0 企业级备份工具
  7. R的数据库访问-MySQL
  8. 不能安装mysql-connector-odbc-5.2.6-win
  9. 如何通过mysql查询获得具有不同时区的事
  10. JDBC与SQLServer的连接