zoukankan      html  css  js  c++  java
  • Map中放入对象字符串转义问题

     在做Zuul网关日志处理的时候,有以下需求:

    (1)记录请求成功的日志,要求记录请求返回的结果。

    遇到的问题:

    (1)当请求的结果事对象时,会将其转成字符串,在put进map的时候,字符串就会被转义

    (2)请求的结果不一定的对象,也可能时数字或者字符串

        public static String getObjectStr(){
            Map<String,Object> param = new HashMap<>();
            param.put("name", "zhangsan");
            param.put("age", 18);
            return JSONObject.toJSONString(param);
        }
        
        public static void main(String[] args) {
            String paramStr = getObjectStr();//模拟获取请求的 结果
            
            Map<String,Object> result = new HashMap<>();
            result.put("code", 200);
            result.put("body", paramStr);
            
            System.out.println(JSONObject.toJSON(result));
        }

     解决方法:

    (1)对获取到的结果字符串尝试进行JSONObject解析,若解析成功,就将该对象put进map;若解析不成功,就直接获取到的字符串。例:

    public static String getObjectStr(){
            Map<String,Object> param = new HashMap<>();
            param.put("name", "zhangsan");
            param.put("age", 18);
            return JSONObject.toJSONString(param);
        }
        
        public static void main(String[] args) {
            String paramStr = getObjectStr();//模拟获取请求的 结果
            
            Map<String,Object> result = new HashMap<>();
            result.put("code", 200);
            try {
                result.put("body", JSONObject.parse(paramStr));
            } catch (Exception e) {
                result.put("body", paramStr);
            }
            
            System.out.println(JSONObject.toJSON(result));
        }

    JSONObject:import com.alibaba.fastjson.JSONObject;

     这样就可以解决对象字符串被转义的问题了

  • 相关阅读:
    【IDDFS】Power Calculus
    【A*/K短路】 [USACO08MAR]Cow Jogging G
    P1880 [NOI1995]石子合并
    【区间DP】[USACO16OPEN]248 G
    【树上背包】P1273 有线电视网
    【分组背包】[BJOI2019]排兵布阵
    DP学习笔记——背包专题
    【思维/构造】D
    【线段树+扫描线】P5490 【模板】扫描线
    【最小生成树】畅通工程再续 HDU
  • 原文地址:https://www.cnblogs.com/excellencesy/p/12373587.html
Copyright © 2011-2022 走看看