zoukankan      html  css  js  c++  java
  • 关于对多层嵌套的json字符串取目标值的问题

    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);
        }
    }

  • 相关阅读:
    EMQTT测试--安装与测试 (windows)
    phpStudy本地搭建wordpress教程
    windows下9款一键快速搭建PHP本地运行环境的好工具(含php7.0环境)
    mysql允许外网访问 和修改mysql 账号密码
    mysql sql常用语句
    Mysql(MyISAM和InnoDB)及Btree和索引优化
    Python 有关网址
    Python 字典(Dictionary)操作详解
    pandas读取xlsx
    Python 学习笔记 (变量与数据类型)
  • 原文地址:https://www.cnblogs.com/zw520ly/p/6379409.html
Copyright © 2011-2022 走看看