JSON处理子数组

处理前的JSON数据:

{"password":"123456","query":{"aa":[{"11":"22","bb":[{"33":"44","55":"66"}]}]}}

 

import net.sf.json.JSONArray;

import net.sf.json.JSONObject;

 

public class JsonTest {

 

    /**

     * 转换json子数组格式

     */

    public static JSONObject convertChild(String json) {

        String oneKey = "aa";

        String twoKey = "bb";

        JSONObject oneObject = JSONObject.fromObject(json);

        JSONArray jsonArray = oneObject.getJSONObject("query").getJSONArray(oneKey);

        for (Object one : jsonArray) {

            if (one instanceof JSONObject) {

                final JSONObject twoObject = (JSONObject) one;

                final JSONArray twoArray = twoObject.getJSONArray(twoKey);

                JSONArray newTwoArray = new JSONArray();

                for (Object twoChild : twoArray) {

                    if (twoChild instanceof JSONObject) {

                        for (Object keyObject : ((JSONObject) twoChild).keySet()) {

                            JSONObject newChild = new JSONObject();

                            String key = keyObject.toString();

                            Object value = ((JSONObject) twoChild).get(key);

                            newChild.put("name", key);

                            newChild.put("value", value);

                            newTwoArray.add(newChild);

                        }

                    }

                }

                twoObject.put(twoKey, newTwoArray);

            }

        }

        return oneObject;

    }

}

处理后打印的JSON数据:

{"password":"123456","query":{"aa":[{"11":"22","bb":[{"name":"33","value":"44"},{"name":"55","value":"66"}]}]}}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值