fastjson key with the conversion map hierarchy

The main code

	public static void isFor(String str,String keyObj) {
		StringBuffer sb = new StringBuffer();
		HashMap map = JSON.parseObject(str, HashMap.class);
		for (Object key : map.keySet()) {
			boolean jsonValid = isJSONValid(map.get(key) + "");
			if (jsonValid) {
				Object json = JSONObject.parse(map.get(key) + "");
				if (json instanceof JSONObject) {
					JSONObject jsonObject = (JSONObject) json;
                                        //每次递归传入上一层的key
					isFor(map.get(key) + "",keyObj+"."+key);
				} else if (json instanceof JSONArray) {
					JSONArray jsonArray = (JSONArray) json;
                                        //数组格式json串转换带下标的数组格式,从0开始
					int i = 0;
					for (Object obj : jsonArray) {
						isFor(obj.toString(),(String)key+"["+i+"]");
						i++;
					}
				}
			} else {
				System.err.println(keyObj+"."+key + "== " + map.get(key) + "");
			}
		}
	}


	public static boolean isJSONValid(String test) {
		if(StringUtils.isBlank(test)) {
			return false;
		}
        try {
            JSONObject.parseObject(test);
        } catch (Exception ex) {
            try {
                JSONObject.parseArray(test);
            } catch (Exception ex1) {
                return false;
            }
        }
        return true;
	}

test

json format:

	public static void main(String[] args) throws Exception {
		String str = "{\"xlbzph\": \"H040056\",\"jyxl\": {\"zdz\": \"城南汽车站\",\"qwe\": {\"www\": \"22222222222222\"}}}";
		//String str = "{\"cyzglb\":[{\"cclzrqn\":\"2019\",\"cclzrqr\":\"26\",\"yxqsrqr\":\"26\",\"cyzglb\":\"经营性道路旅客运输驾驶员\",\"yxqsrqn\":\"2019\",\"yxqsrqy\":\"06\",\"yxqx\":\"6年\",\"cclzrqy\":\"06\"},{\"cclzrqn\":\"2019\",\"cclzrqr\":\"26\",\"yxqsrqr\":\"26\",\"cyzglb\":\"经营性道路旅客运输驾驶员\",\"yxqsrqn\":\"2019\",\"yxqsrqy\":\"06\",\"yxqx\":\"6年\",\"cclzrqy\":\"06\"},{\"cclzrqn\":\"2019\",\"cclzrqr\":\"26\",\"yxqsrqr\":\"26\",\"cyzglb\":\"经营性道路旅客运输驾驶员\",\"yxqsrqn\":\"2019\",\"yxqsrqy\":\"06\",\"yxqx\":\"6年\",\"cclzrqy\":\"06\"},{\"cclzrqn\":\"2019\",\"cclzrqr\":\"19\",\"yxqsrqr\":\"20\",\"cyzglb\":\"经营性道路旅客运输驾驶员\",\"yxqsrqn\":\"2019\",\"yxqsrqy\":\"03\",\"yxqx\":\"6年\",\"cclzrqy\":\"03\"}],\"jcxx\":{\"zz\":\"四川成都\",\"csrq\":\"1977-02-11\",\"gj\":\"中国\",\"xm\":\"jinxiong yu\",\"bh\":\"sada123\",\"xb\":\"女\",\"ewm\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAC8ElEQVR42u2aQXKDQBAD+f+nyTWHgEdqjYPL4uRyAQtNza6k2ePsMT6OIiiswiqsD4Z1jI8/7vXr/6vzJ//fn3l1/ov3vL3z8B0LC8NSB578noCeILsahfxz/46FlYY1f8T7Arl/XLXE1Gsnow/fsbDeCGs+Ad+f45XhfGpXp4jCOh5RhnzKn4PzPmRhPQmWJx0mS4F6pioLJkvQI3TW18EipfEpv//BG341LJRgiFZmfi2xyg/Ns74OVlYozq8lh2pr5gVbWDlYanhCZCq/v/oxPDlSWDuwPGExX5JJyXsRoyq2CysBi4SwnrnxwkV1MVHPLKwdWN4w6tLOX2BPlJg6q7BeTPBq0DEH4TVH1RJLLVCFlYY1D9jUZZ609b22CA8UCysBi0/YqqElksUTDW9KHQoLhXypNpQqCIhAtZsahYVh8RLj2z1S7SzPeBfWJqyNBX5+jjfxZ4V0YaVhpQSBt/Dz5pgXCsWS0sI61S1Hc8tCjLFakmTLXCDPKizZ7qhLPg9JeCPOK+pArFxYwgRPbKcqCIl0VJtgdruksAAs0rZUBScRClwqG+MW1hos1bh4cY06Fgm1JbiFFYKVNUAk9iNLvhEfn8F98IUl21SCKRUK8khHMuqFBWBlZWeqraCOQsxzYe3DIsOozVQubkn0GM7gC0uY4MnET7YNcWFJAsLCSsPiW4Xmj+XJCFVMELtWWGlYWcPhGW9VsszDGWPiL6xQR9poFkktL7Xh6pkbtUgLawcWkQ7q43KrROSFIWULC8Aim3VIq4pv8eCiF/UNCwsZaa9pNm/ocwQ8SoylDoVlWgoywZM4iMRHXru/sBKwPFuQssTk/upHMiAWFoDF432vENTWmRfRhKVDYa03WYmg5QVLFiXJ6hdWCBZvee0JBS9+8TYzFdYnwEpt6Nho4qMJvrBWYJGX8Vpbk09C4qbC2oTFS4A0+rmNVwXtus4qLDP6SIkJ1eJ6gfLctBdWAlaPQCusR2EVVmE94fgBHxlYVjHdvqMAAAAASUVORK5CYII\\u003d\",\"zh\":\"511027197702114401\"}}";
		isFor(str,"");
	}

 

Output

The output brought you, according to their need to optimize, optimize bother here

Need to convert a map, you can add the parameter map

Published 18 original articles · won praise 0 · Views 355

Guess you like

Origin blog.csdn.net/Mr_ye931/article/details/105131105