Android的json解析方式(一)
来源:互联网 发布:java终止线程 编辑:程序博客网 时间:2024/06/06 13:08
在Android中,json解析十分普通,也有很多解析的方式。
JSONObject和Gson是最常见的方法。
本文采用的json串(关于车辆违章信息):
{ "ret": "0", "ret_msg": "", "violation_info": [{ "temp_id": 1975175, "violation_road": "学海路(312国道至仙林大道路段)", "violation_sn": 3201139057889278, "violation_time": 20131224144200 }, { "temp_id": 1975178, "violation_road": "宁小线(122省道)", "violation_sn": 3211837900461076, "violation_time": 20130613180500 }]}
采用JSONObject 方式:
程序:
private void jsonInit(String str){ Mode mode = new Mode(); try { JSONObject jsonObject = new JSONObject(str); String ret = jsonObject.optString( "ret"); String ret_msg = jsonObject.optString("ret_msg" ); JSONArray jsonArray = jsonObject.optJSONArray("violation_info" ); for( int i = 0; i < jsonArray.length(); i++){ String temp_id = jsonArray.getJSONObject(i).optString("temp_id" ); String violation_road = jsonArray.getJSONObject(i).optString("violation_road" ); String violation_sn = jsonArray.getJSONObject(i).optString("violation_sn" ); String violation_time = jsonArray.getJSONObject(i).optString("violation_time" ); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
可以看到解析的很繁琐,如果违章信息很多的话,每个信息都要去取,实在很麻烦。
采用Gson方式解析(必须建Mode,引入google Gson库):
需要定义的Mode类:
public class Mode {private String ret;private String ret_msg;private List<violation_info> violation_info;//这个"violation_info"特别容易出错,一定要和json串里面的一样才行public String getRet() {return ret;}public void setRet(String ret) {this.ret = ret;}public String getRet_msg() {return ret_msg;}public void setRet_msg(String ret_msg) {this.ret_msg = ret_msg;}public List<violation_info> getVio_List() {return violation_info;}public void setVio_List(List<violation_info> vio_List) {this.violation_info = vio_List;}}class violation_info {String temp_id;String violation_road;String violation_sn;String violation_time;public String getTemp_id() {return temp_id;}public void setTemp_id(String temp_id) {this.temp_id = temp_id;}public String getViolation_road() {return violation_road;}public void setViolation_road(String violation_road) {this.violation_road = violation_road;}public String getViolation_sn() {return violation_sn;}public void setViolation_sn(String violation_sn) {this.violation_sn = violation_sn;}public String getViolation_time() {return violation_time;}public void setViolation_time(String violation_time) {this.violation_time = violation_time;}}
程序:
private void gsonInit(String str){ Gson gson = new Gson(); Mode mode = gson.fromJson(str, Mode.class);}
Gson也可以逆解析,将数据转换成json格式,采用了toJson方法。
private void gsonInit(String str){ Gson gson = new Gson(); Mode mode = gson.fromJson(str, Mode. class); // 逆解析 String jsonStr = gson.toJson(mode); Log. e("jsonStr" , jsonStr); System. out.println(jsonStr); }
0 0
- Android的json解析方式(一)
- Android解析JSON方式(一)服务器端生成JSON数据
- Android解析JSON方式
- Android下JSON解析的方式
- Android解析JSON方式---- 很好的例子
- Android---JSON的三种解析方式
- Android:解析JSON的三种方式
- Android JSON数据解析(GSON方式)
- Android解析JSON数据(一)——JSON解析
- json的解析方式
- json的解析方式
- json解析的方式
- android 解析Json格式的数据(一)
- Android-json解析(一):Gson的使用
- Android简单的JSON解析(一)
- Android中解析JSON(一)
- android 解析json数据(一)
- android Gson解析 (同json解析方式)
- MySQL embedded server prepared statement执行分析
- Android strings.xml中特殊字符
- XSLT - 利用template实现for循环
- [POJ1185] [NOI2001] 炮兵阵地
- 转载-gettrcname.sql
- Android的json解析方式(一)
- hdu 1827 Summer Holiday(tarjan)
- 使用Bitmap createBitmap遇到的问题
- 26. Dubbo原理解析-监控
- ajax延迟加载数据
- Golang部份特性的C++对比实现
- android控件开发之progress
- java对象的强引用,软引用,弱引用和虚引用
- Android 仿QQ侧边栏,自定义view的学习 <Garry进阶(三)>