zoukankan      html  css  js  c++  java
  • 对json数据key进行替换

    原文:https://blog.csdn.net/qq_39750658/article/details/83411897

    import java.util.HashMap;
    import java.util.Map;
    import java.util.Set;
    
    import com.alibaba.fastjson.JSONArray;
    import com.alibaba.fastjson.JSONObject;
    
    /**
     * 
     * 对json数据key进行替换
     */
    public class JSONUtil {
    
        public static JSONObject changeJsonObj(JSONObject jsonObj,Map<String, String> keyMap) {
            JSONObject resJson = new JSONObject();
            Set<String> keySet = jsonObj.keySet();
            for (String key : keySet) {
                String resKey = keyMap.get(key) == null ? key : keyMap.get(key);
                try {
                    JSONObject jsonobj1 = jsonObj.getJSONObject(key);
                    resJson.put(resKey, changeJsonObj(jsonobj1, keyMap));
                } catch (Exception e) {
                    try {
                        JSONArray jsonArr = jsonObj.getJSONArray(key);
                        resJson.put(resKey, changeJsonArr(jsonArr, keyMap));
                    } catch (Exception x) {
                        resJson.put(resKey, jsonObj.get(key));
                    }
                }
            }
            return resJson;
        }
        
        public static JSONArray changeJsonArr(JSONArray jsonArr,Map<String, String> keyMap) {
            JSONArray resJson = new JSONArray();
            for (int i = 0; i < jsonArr.size(); i++) {
                JSONObject jsonObj = jsonArr.getJSONObject(i);
                resJson.add(changeJsonObj(jsonObj, keyMap));
            }
            return resJson;
        }
        
        public static void main(String[] args) {
            String jsonStr = "{"user":{"name":"张三","sex":"男","hobby":[{"motion":"足球","desc":"任性"},{"game":"英雄联盟","desc":"就是这么任性"}]}}";
            Map<String, String> keyMap = new HashMap<String, String>();
            keyMap.put("name", "XingMing");
            keyMap.put("user", "YongHu");
            keyMap.put("desc", "MiaoShu");
            JSONObject jsonObj = JSONUtil.changeJsonObj(JSONObject.parseObject(jsonStr),keyMap);
            System.out.println("换值结果 》》 " + jsonObj.toString());
        }
    }
  • 相关阅读:
    缓存三大问题及解决方案
    布隆过滤器
    maven 详解
    Netty是什么?
    select、poll、epoll简介
    IO
    Java并发编程:Synchronized及其实现原理
    Java并发之AQS详解
    原子更新字段类
    AtomicStampedReference解决ABA问题
  • 原文地址:https://www.cnblogs.com/shihaiming/p/10208436.html
Copyright © 2011-2022 走看看