org.json解析动态Json数据

                                                                        org.json解析动态Json数据

{
	"data": [{
		"workId": 1,
		"workNote": "工作计划"
	}],
	"work1": {
		"userId": 1,
		"name": ["张三", "王五"]
	},
	"work2": {
		"userId": 2,
		"name": ["Tom"]
	}
}

上面这段Json,最外层是JsonObject。data层JsonArray,里面是JsonObject。work1、work2、wrok3 ......动态增加。

想取出workId、name值。这里使用org.json解析。

private void parseData() {
    try {
        String str = getResources().getString(R.string.text_json);
        int workCount = 0;
        JSONObject mJsonObject = new JSONObject(str);
        JSONArray mJsonArray = mJsonObject.getJSONArray("data");
        // 遍历长度
        for (int i = 0; i < mJsonArray.length(); i++) {
            JSONObject mObject = (JSONObject) mJsonArray.get(i);
            int workId = mObject.getInt("workId");
        }

        Iterator keys = mJsonObject.keys();
        while (keys.hasNext()) {
            String key = String.valueOf(keys.next());
            if (key.contains("work")) {
                workCount++;
            }
        }

        for (int i = 1; i <= workCount; i++) {
            JSONObject mObject = (JSONObject) mJsonObject.get("work" + i);
            JSONArray mArray = mObject.getJSONArray("name");
            for (int j = 0; j < mArray.length(); j++) {
                String name = (String) mArray.get(j);
                Log.i(TAG, "===name===" + name);
            }
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }

}

打印结果

===name===张三

===name===王五

===name===Tom

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值