博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于对多层嵌套的json字符串取目标值的问题
阅读量:5245 次
发布时间:2019-06-14

本文共 1245 字,大约阅读时间需要 4 分钟。

import java.util.HashMap;

import java.util.Iterator;
import java.util.Map;
import net.sf.json.JSONObject;
public class JsonToMap {
    /**
     * 对外提供获取多嵌套json值的方法,已重载
     *
     * @param result
     *            初始化输入的json字符串,也被递归调用之后覆盖
     * @param Hierarchy
     *            要获取最终的值要经历几个json层级
     * @param keys
     *            各层级下对应的json的key,个数与Hierarchy的值一致
     * @return
     */
    public Object getValue(Object result, int Hierarchy, String[] jsonKeys) {
        int i = 0;
        // 递归调用getValue方法,取到最终所需要的json字符串中的值
        while (i < jsonKeys.length) {
            result = getValue(result, Hierarchy, jsonKeys[i]);
            i++;
        }
        // 返回最终需要的值
        return result;
    }
    /**
     * 用于递归调用,获取单层的json的某个值
     *
     * @param result
     *            初始化输入的json字符串
     * @param Hierarchy
     *            要获取最终的值要经历几个json层级
     * @param firstkey
     *            对应到json的key,仅限于当前层级
     * @return
     */
    private Object getValue(Object result, int Hierarchy, String firstkey) {
        // 将字符串转换成json对象
        JSONObject jsonObject = JSONObject.fromObject(result);
        // 构造jsonToMap对象,准备存储jsonObject对象中的数据
        Map jsonToMap = new HashMap<Object, Object>();
        // 获取迭代器
        Iterator ite = jsonObject.keys();
        // 遍历jsonObject对象中的数据,将数据添加到jsonToMap对象
        while (ite.hasNext()) {
            String key = ite.next().toString();
            String value = jsonObject.get(key).toString();
            jsonToMap.put(key, value);
        }
        // 返回所需要的值
        return jsonToMap.get(firstkey);
    }
}

转载于:https://www.cnblogs.com/zw520ly/p/6379409.html

你可能感兴趣的文章
Python logger /logging
查看>>
linux环境下android-ndk下的ffmpeg编译
查看>>
不同的路径12障碍物 · Unique Paths12
查看>>
上海之行(二)迪斯尼
查看>>
一品黄山 天高云淡
查看>>
整理的各种模板 (随时弃坑emmmmm)
查看>>
epoll的一些细节和注意事项
查看>>
Java并发编程--3.Lock
查看>>
ThinkPHP框架表单验证
查看>>
如何开始整理?
查看>>
MySQL的XA_prepare_event类型binlog的解析
查看>>
SVN冲突的解决过程
查看>>
你必须非常努力,才可以看起来毫不费力。
查看>>
日记-2017-7-25-django/admin-Levenshtein
查看>>
Jzoj4896 兔子
查看>>
php知识点
查看>>
Python_函数:reduce()
查看>>
Laravel 5 系统架构:服务提供者、服务容器、Contracts、Facades
查看>>
AWS
查看>>
sqlserver2008简介
查看>>