JSONArray jsonArray = new JSONArray(jsonData);
//2. 解析数组里面的每一个数据
for (int i=0; i<jsonArray.length(); i++){
//3. 一个数组元素就是一个JSONObject
JSONObject jsonObject = jsonArray.getJSONObject(i);
//4. 根据key获取对应的值
String id = jsonObject.getString(“id”);
String version = jsonObject.getString(“version”);
String name = jsonObject.getString(“name”);
Log.i(TAG, “parseJSONWithJSONObject: id”+id);
Log.i(TAG, “parseJSONWithJSONObject: version”+version);
Log.i(TAG, “parseJSONWithJSONObject: name”+name);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
2. 使用GSON
神奇之处在于,它可以将一段JSON格式的字符串自动映射成一个对象,从而不需要我们再手动去编写代码进行解析了.
对象书写技巧:
1.逢{}创建对象,逢[]创建集合(一般是ArrayList)
2.所有字段名称要和json返回字段高度一致,如果不太适合直接作为Java字段来命名,可以使用@SerializedName注解的方式来让JSON字段和java字段之间建立映射关系
准备工作:
编辑app/build.gradle文件,在dependencies闭包中添加如下内容
compile 'com.google.code.gson:gson:2.7'
示例
服务端的json数据为
[{“id”:“5”,“version”:“5.5”,“name”:“Clash of Clans”},
{“id”:“6”,“version”:“7.0”,“name”:“Boom Beach”},
{“id”:“7”,“version”:“3.5”,“name”:“Clash Royale”}
]
这里首先需要创建一个app实体类
public class App {
private String id;
private String name;
private String version;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
}
然后这样写:
private void parseJSONWithGSON(String jsonData){
Gson gson = new Gson();
List appList = gson.fromJson(jsonData,new TypeToken<List>(){}.getType());
for (App app : appList) {
Log.i(TAG, "parseJSONWithGSON: "+app.getId());
Log.i(TAG, "parseJSONWithGSON: "+app.getName());
Log.i(TAG, "parseJSONWithGSON: "+app.getVersion());
}
}
最后看一下学习需要的所有知识点的思维导图。在刚刚那份学习笔记里包含了下面知识点所有内容!文章里已经展示了部分!如果你正愁这块不知道如何学习或者想提升学习这块知识的学习效率,那么这份学习笔记绝对是你的秘密武器!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!