帮忙解析个简单的json数据 json数据解析 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 JSONObject obj = new JSONObject(""); String size = obj.optString("size"); JSONArray array = new JSONArray(obj.optString("array")); for(int i = 0 ;i < array.length() ; i++){ JSONObject objs = new JSONObject(array.getJSONObject(i)); String uid = objs.optString("uid"); .....; } 用Gson包 很简单的,不过要借助下javaBean对象。package com.devil.pojo;import java.util.List;public class A { private List<B> array; private int size; public List<B> getArray() { return array; } public void setArray(List<B> array) { this.array = array; } public int getSize() { return size; } public void setSize(int size) { this.size = size; }}package com.devil.pojo;public class B { private String UID; private String IP; public String getUID() { return UID; } public void setUID(String uID) { UID = uID; } public String getIP() { return IP; } public void setIP(String iP) { IP = iP; }}private void T() { String json = "{'array':[{'UID':'LACA6C0284SGCM8','IP':'192.168.1.112'},{'UID':'LACA6C0284UMFKY','IP':'192.168.1.127'},{'UID':'LACA6C0284KCXNU','IP':'192.168.1.106'}],'size':3}"; A a = JsonUtil.parse(json, A.class); for (B b : a.getArray()) { Log.e("DEVIL", b.getUID() + " " + b.getIP()); } }03-20 14:00:53.869: E/DEVIL(12003): LACA6C0284SGCM8 192.168.1.11203-20 14:00:53.869: E/DEVIL(12003): LACA6C0284UMFKY 192.168.1.12703-20 14:00:53.869: E/DEVIL(12003): LACA6C0284KCXNU 192.168.1.106 /** * 将json字符串转换成对象 * * @param json * @param type * @return */ public static <T> T parse(String json, Class<T> type) { Gson gson = new Gson(); T t = null; try { t = gson.fromJson(json, type); } catch (Exception e) { e.printStackTrace(); return null; } return t; } public static List<Map<String, Object>> getListMaps(String key, String jsonString){ List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>(); try { JSONObject jsonObject = new JSONObject(jsonString); JSONArray jsonArray = jsonObject.getJSONArray(key); for(int i = 0; i < jsonArray.length(); i++){ JSONObject jsonObject2 = jsonArray.getJSONObject(i); Map<String, Object> map = new HashMap<String, Object>(); // 通过org.json中的迭代器来取Map中的值。 Iterator<String> iterator = jsonObject2.keys(); while(iterator.hasNext()) { String jsonKey = iterator.next(); Object jsonValue = jsonObject2.get(jsonKey); //JSON的值是可以为空的,所以我们也需要对JSON的空值可能性进行判断。 if(jsonValue == null){ jsonValue = ""; } map.put(jsonKey, jsonValue); } listMap.add(map); } } catch (Exception e) { // TODO: handle exception } return listMap; } 你们的方法都不错,谢谢你们!t = gson.fromJson(json, type);为什么这个老是得到空值,有没遇到过? public static List<Bean> pullJson(String jsonStr) { List<Bean> list = null; Bean bean = null; try { JSONObject jsonObject = new JSONObject(jsonStr); JSONArray jArray = jsonObject.getJSONArray("array"); //JSONArray jArray = (JSONArray) jsonObject.get("array"); list = new ArrayList<Bean>(); for (int i = 0; i < jArray.length(); i++) { bean = new Bean(); JSONObject jsonObject2 = (JSONObject)jArray.get(i); bean.setuId(jsonObject2.getString("UID")); bean.setIp(jsonObject2.getString("IP")); list.add(bean); } bean.setSize(jsonObject.getInt("size")); return list; } catch (Exception e) { e.printStackTrace(); } return null; } 新手报错... 遇到一个奇怪的问题,请大侠们解决。。。 求android自定义控件如何添加点击事件,长按事件 求教,如何根据web页面的内容动态构造client-side的界面 NDK关于.so文件的生成!!! TextView异步加载图片,谁能帮忙写个缓存处理 急!!! 求个基于安卓的eclipse 记事本卓 点击button后如何变换背景?再点击一次后,就变换回来??(求源码) 安卓显示图片和文字的控件问题 android 蓝牙ble 连接超时,有懂得的高手帮忙下,谢谢了。 android socket通信调试时可用,发布到服务器出错 请问如何停止socket通信进程?
String size = obj.optString("size");
JSONArray array = new JSONArray(obj.optString("array"));
for(int i = 0 ;i < array.length() ; i++){
JSONObject objs = new JSONObject(array.getJSONObject(i));
String uid = objs.optString("uid");
.....;
}
private int size; public List<B> getArray() {
return array;
} public void setArray(List<B> array) {
this.array = array;
} public int getSize() {
return size;
} public void setSize(int size) {
this.size = size;
}}package com.devil.pojo;public class B { private String UID;
private String IP; public String getUID() {
return UID;
} public void setUID(String uID) {
UID = uID;
} public String getIP() {
return IP;
} public void setIP(String iP) {
IP = iP;
}}private void T() {
String json = "{'array':[{'UID':'LACA6C0284SGCM8','IP':'192.168.1.112'},{'UID':'LACA6C0284UMFKY','IP':'192.168.1.127'},{'UID':'LACA6C0284KCXNU','IP':'192.168.1.106'}],'size':3}";
A a = JsonUtil.parse(json, A.class);
for (B b : a.getArray()) {
Log.e("DEVIL", b.getUID() + " " + b.getIP());
}
}
03-20 14:00:53.869: E/DEVIL(12003): LACA6C0284SGCM8 192.168.1.112
03-20 14:00:53.869: E/DEVIL(12003): LACA6C0284UMFKY 192.168.1.127
03-20 14:00:53.869: E/DEVIL(12003): LACA6C0284KCXNU 192.168.1.106 /**
* 将json字符串转换成对象
*
* @param json
* @param type
* @return
*/
public static <T> T parse(String json, Class<T> type) {
Gson gson = new Gson();
T t = null;
try {
t = gson.fromJson(json, type);
} catch (Exception e) {
e.printStackTrace();
return null;
} return t;
}
List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();
try {
JSONObject jsonObject = new JSONObject(jsonString);
JSONArray jsonArray = jsonObject.getJSONArray(key);
for(int i = 0; i < jsonArray.length(); i++){
JSONObject jsonObject2 = jsonArray.getJSONObject(i);
Map<String, Object> map = new HashMap<String, Object>();
// 通过org.json中的迭代器来取Map中的值。
Iterator<String> iterator = jsonObject2.keys();
while(iterator.hasNext()) {
String jsonKey = iterator.next();
Object jsonValue = jsonObject2.get(jsonKey);
//JSON的值是可以为空的,所以我们也需要对JSON的空值可能性进行判断。
if(jsonValue == null){
jsonValue = "";
}
map.put(jsonKey, jsonValue);
}
listMap.add(map);
}
} catch (Exception e) {
// TODO: handle exception
}
return listMap;
}
t = gson.fromJson(json, type);为什么这个老是得到空值,有没遇到过?
{
List<Bean> list = null;
Bean bean = null;
try {
JSONObject jsonObject = new JSONObject(jsonStr);
JSONArray jArray = jsonObject.getJSONArray("array");
//JSONArray jArray = (JSONArray) jsonObject.get("array");
list = new ArrayList<Bean>();
for (int i = 0; i < jArray.length(); i++) {
bean = new Bean();
JSONObject jsonObject2 = (JSONObject)jArray.get(i);
bean.setuId(jsonObject2.getString("UID"));
bean.setIp(jsonObject2.getString("IP"));
list.add(bean);
}
bean.setSize(jsonObject.getInt("size"));
return list;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}