Android中JSON解析
16lz
2021-01-24
前一段时间学习Android解析JSON数据,发现不知道什么时候该用JSONObject,什么时候该用JSONArray。所以通过上网查询了资料,然后整理写下这篇博客。
JSONObject: 可以看作是一个json对象,其包含一对(Key/Value)数值。所表现的形式是最外被大括号”{}”包裹,其中的Key和Value被冒号”:”分隔,数据结构为:{key:value,key:value,…}
的键值对的结构。在面向对象的语言中,key为对象的属性,value为对应的属性值。
JOSNArray: 它代表一组有序的数值。所表现的形式是用方括号”[]”包裹,数值以逗号”,”分隔,数据结构为 :[value1,value2,value3]
简单来讲当要解析的JSON数据类型是:{"key":"value"}
就用JSONObject解析。如果是[value1,value2,value3]
就用JSONArray解析。
具体我们通过例子说明:
单数据类型:{"id":"5","version":"5.5","name":"Angry Birds"}复合数据类型:{/*JSONObject*/ "list":[/*JSONArray*/ {/*JSONObject*/ "id":"5", "version":"5.5", "name":"zhangsan" }, {/*JSONObject*/ "id":"6", "version":"6.0", "name":"lisi"}, { /*JSONObject*/ "id":"7", "version":"7.7", "name":"wangwu" } ] }
以下是解析代码:
//解析单数据类型 private void parseJSONWithJSONObject(String jsonData) { try { JSONObject jsonObject = new JSONObject(jsonData); String id = jsonObject.getString("id"); String version = jsonObject.getString("version"); String name = jsonObject.getString("name"); textView.setText(id + " " + version + " " + name); } catch (JSONException e) { e.printStackTrace(); } } //解析复合数据类型 private void parseJSONObjectOrJSONArray(String jsonData) { try { String count = ""; JSONObject jsonObject = new JSONObject(jsonData); JSONArray jsonArray = jsonObject.getJSONArray("list"); for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject1 = jsonArray.getJSONObject(i); String id = jsonObject.getString("id"); String version = jsonObject.getString("version"); String name = jsonObject.getString("name"); count = id + " " + version + " " + name; } textView.setText(count); } catch (JSONException e) { e.printStackTrace(); } }
更多相关文章
- 转:基于 Android(安卓)NDK 的学习之旅-----JNI 数据类型
- Android(安卓)中SQLite技术实例详解
- android 音量设置条
- Android(安卓)安全机制概述 Permission
- 进度条(ProgressBar)拖动条(SeekBar)android
- Android跨进程数据通讯-剪切板Clipboard
- Android里面从Dialog中获取返回值并写入指定TextView组件
- Android(安卓)数据结构之 二叉树
- Android使用SurfaceView播放视频,可以自适应尺寸。