Android中使用Gson解析JSON数据,以及把JSON数据映射成一个对象
16lz
2021-01-23
在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对象:
http://www.itzhai.com/android-to-parse-json-data-using-gson.htmlJSONObject allresult;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());
Gson的使用更加详细的例子:
http://www.360doc.com/content/11/0815/14/7322578_140545909.shtml
更多相关文章
- Storm——Android SQLite数据库管理类库
- Android 监听ContentProvider中数据的变化 Android 监听ContentP
- Android 存储字符串数据到txt文件
- android 数据持久化——File
- Android中Intent传递对象的两种方法(Serializable,Parcelable)!
- Android 代码实现查看SQLite数据库中的表
- 在android studio中用SQLiteOpenHelper()方法建立数据库
- android 联系人数据库一些知识点
- Android SQLcipher 数据库解密