Android数据解析-----解析json数据
来源:互联网 发布:南京众东项目数据分析 编辑:程序博客网 时间:2024/06/03 14:41
json是一种网络传输中常用的数据格式,它体积小,便于网络传输,节省流量,但相比于xml,它的语义性较差,看起来不如xml直观,下面将介绍 json数据的解析方法。
下面给出需要解析的json数据。
[{"id":"1","name":"Google","version":"1.0"},{"id":"2","name":"Android","version":"2.0"},{"id":"3","name":"Play","version":"3.0"}]
一、使用JSONObject解析数据
首先,这里先补充一点json数据格式的知识点。在json数据格式中,每一个{}之间的内容就是一个对象,每一个[]之间的内容是一个数组,上面各处的json数据就是一个数组,其中包含三个json对象,构成了一个json字符串。下面给出解析上面json字符串的代码。
我们只需要将json字符串转化为JSON数组对象,然后再从中取出一个个的JSON对象,再从对象中读取出包含的值即可。
/** * 用JSONObject解析json数据 * @param jsonData */private void parseJsonWithJSONObject(String jsonData){ try { //将json字符串转化为JSONArray对象 JSONArray jsonArray = new JSONArray(jsonData); for (int i = 0; i < jsonArray.length(); i++) { //获得json数组中的每一个json对象 JSONObject jsonObject = jsonArray.getJSONObject(i); //从json对象中取出相对应的值 String id = jsonObject.getString("id"); String name = jsonObject.getString("name"); String version = jsonObject.getString("version"); Log.d("JJJJ", "id: " + id); Log.d("JJJJ", "name: " + name); Log.d("JJJJ", "version: " + version); } } catch (JSONException e) { e.printStackTrace(); }}
二、使用GSON解析数据
GSON是谷歌提供的json解析的开源框架,但目前还没有被添加到Android官方的API中,我们通过将其添加为库,即可快速简单地解析json数据。
GSON的方便之处在于,它可以将一个json字符串中的对象自动映射处理成一个java中的javabean对象。
下面简单介绍一下在Android中如何快速添加GSON库。
1、在app这个module上面右键,选择Open Module Settings
2、找到模块依赖,并点击添加右侧+号,添加依赖,如下图
3、找到添加Library依赖,然后在下面找到GSON库,点击OK即可添加成功。
当然我们也可以直接在网上下载到GSON的jar包,然后复制到工程的libs目录下,然后在jar包上右键,选择Add As Library来添加GSON库。
添加好了库,下面开始写相关的解析代码。
首先我们需要创建一个JavaBean,与json字符串中的json对象中的字段一一对应。
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; }}
接着利用GSON的实例来解析json数据
a、如果json字符串类似于这样
{"id":"1","name":"Google","version":"1.0"}
我们就可以使用这两行代码即可解析
Gson gson = new Gson();App app = gson.fromJson(jsonData, App.class);
b、如果是最开始给出的那种有json数组的json字符串,我们就需要借助于TypeToken将期望解析的数据类型传入到fromJson()方法中。
/** * 利用GSON库解析json数据 * @param jsonData */private void parseJsonWithGSON(String jsonData){ Gson gson = new Gson(); List<App> appList = gson.fromJson(jsonData, new TypeToken<List<App>>(){}.getType()); for (App app : appList) { Log.d("NNNN", "id: " + app.getId()); Log.d("NNNN", "name: " + app.getName()); Log.d("NNNN", "version: " + app.getVersion()); }}
以上就是解析json数据常用的两种方式,当然还有许多json解析相关的库也可以帮我们快速解析数据。
- Android数据解析:Json解析
- android---Json数据解析
- Android Json 数据解析
- Android解析json数据
- android解析json数据
- Android-解析json数据
- Android Json数据解析
- Android解析JSON数据
- Android解析Json数据
- Android json数据解析
- android解析json数据
- android解析JSON数据
- Android解析json数据
- android Json数据解析
- android JSON数据解析
- Android 解析 Json 数据
- Android JSON数据解析
- Android JSON数据解析
- 【bzoj1609】麻烦的聚餐
- maven pom.xml
- 第五周项目1-三角形类雏形(5)
- CCF 201512-3 我80分
- Ubuntu下找不到php5,phpize等可执行程序的解决办法
- Android数据解析-----解析json数据
- PCL常见编程问题
- NOIP提高组 闭门造车
- BFS CCF 游戏
- 【RQNOJ 285】USACO2008 Feb 麻烦的聚餐(重庆一中高2018级信息学竞赛测验9) 解题报告
- window.document
- 第五周项目3-时间类(1)
- ubuntu下apt-get install php的安装 的目录在哪
- 外面小雨