如果需要解析的是一段 JSON 数组会稍微麻烦一点,我们需要借助 TypeToken 将期望解析成的数据类型传入到 fromJson() 方法中,如下所示:
List<Person> people = gson.fromJson(jsonData, new TypeToken<List<Person>>(){}.getType());基本的用法就是这样,下面就让我们来真正地尝试一下。
这里我们首先准备好需要解析的JSON原始数据: [ {"id":"1","version":"1.5","name":"Apple"}, {"id":"2","version":"1.6","name":"WillFlow"}, {"id":"3","version":"1.7","name":"WGH"} ] 然后新建一个AppBean类,用于数据规范的定义: /** * Created by : WGH. */ public class AppBean { } 然后在该类的任意位置“Alt + Insert”,然后选择“Gson Format”或者使用快捷键“Alt + S”然后会出现这样的界面,然后把我们刚才的JSON原始数据粘贴进去后点击OK:
继续点击OK,你会发现此时的AppBean变成了这个样子: /** * Created by : WGH. */ public class AppBean { /** * id : 1 * version : 1.5 * name : Apple */ private String id; private String version; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getVersion() { return version; } public void setVersion(String version) { this.version = version; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
这是一个包含了id、 name 和 version 这三个字段的数据类,并且成员变量和JSON原始数据的Key值完全相同(这点尤为重要,这是采用GSON解析的必须)。
最后在 MainAcitivyt 中定义这样的方法: private void parseByGSON(String jsonData) { Gson gson = new Gson(); List<AppBean> appList = gson.fromJson(jsonData, new TypeToken<List<AppBean>>() {}.getType()); for (AppBean app : appList) { Log.i(TAG, "id : " + app.getId()); Log.i(TAG, "name : " + app.getName()); Log.i(TAG, "version : " + app.getVersion()); Log.i(TAG, "————————————————————"); } }然后调用输出即可。
编译运行查看Log输出
这样我们就就把 XML 和 JSON 这两种数据格式最常用的几种解析方法都学习完了,在网络数据的解析方面,我们已经成功毕业了。
分享给小伙伴们:
本文标签: JSONObject,GSON,JSON/">JSONObject,GSON,JSON
相关文章
发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。
本类最热新闻