帮忙解析个简单的json数据

新靖界 2014-03-20 01:24:18
有下面 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}
求解析方法,谢谢!
...全文
200 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gao_chun 2014-03-20
  • 打赏
  • 举报
回复
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; }
新靖界 2014-03-20
  • 打赏
  • 举报
回复
OK 了谢谢!
新靖界 2014-03-20
  • 打赏
  • 举报
回复
你们的方法都不错,谢谢你们!
引用 4 楼 Java_Devil 的回复:
用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.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;
	}
t = gson.fromJson(json, type);为什么这个老是得到空值,有没遇到过?
oLiXue 2014-03-20
  • 打赏
  • 举报
回复
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; }
绝世酱油瓶 2014-03-20
  • 打赏
  • 举报
回复
用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.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;
	}
西瓜米 2014-03-20
  • 打赏
  • 举报
回复
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"); .....; }
新靖界 2014-03-20
  • 打赏
  • 举报
回复
引用 1 楼 u010178674 的回复:
用JSONObject和JSONArray
可以说具体点吗?
u010178674 2014-03-20
  • 打赏
  • 举报
回复
用JSONObject和JSONArray

80,360

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧