/** * 递归解析json * 本身是json格式,或经过parse之后是json格式。要对子元素递归解析 */ public static Object stringToJson(Object json){ try{ if(json==null){ return json; } //数值类型的,直接返回 if(RuleConstant.NUMBER_TYPES.contains(json.getClass().getName())){ return json; } if(json instanceof String){ Object result = JSON.parse((String)json); json = result; if(result == null){ return result; } if(RuleConstant.NUMBER_TYPES.contains(result.getClass().getName())){ return result; } //有的参数被二次序列化 if(result instanceof String){ return stringToJson(result); } } //本身是json格式,或经过parse之后是json格式。要对子元素迭代解析 if(json instanceof JSONObject){ JSONObject jsonObject = (JSONObject)json; for(String key:jsonObject.keySet()){ jsonObject.put(key,stringToJson(jsonObject.get(key))); } }else if(json instanceof JSONArray){ JSONArray jsonArray = (JSONArray)json; for(int i=0;i<jsonArray.size();i++){ Object object = stringToJson(jsonArray.get(i)); jsonArray.set(i,object); } } return json; }catch (Exception e){ //产生异常说明格式没法用json来解析 } return json; }
递归解析json
最新推荐文章于 2022-04-04 16:21:02 发布