解析json字符串,并且获取其中某个key的值

public static void main(String[] args) {
		String findStr = "hobby,listening,chinese";//查找json字符串中的某个key的值,定义查找目录的顺序
		String str = "{\"person\": {\"name\": \"jack\"},\"hobby\": {\"listening\": [{\"chinese\": \"1\",\"japanese\": \"2\"}],\"age\": \"18\"}}";
//		String str = "{\"person\": {\"name\": \"jack\"},\"hobby\": {\"listening\": {\"chinese\": \"1\",\"japanese\": \"2\"},\"age\": \"18\"}}";
//		String findStr = "listening,chinese";//查找json字符串中的某个key的值,定义目录
//		String str = "{\"listening\": {\"chinese\": \"1\",\"japanese\": \"2\"},\"age\": \"18\"}";
//		String str = "{\"listening\": [{\"chinese\": \"1\",\"japanese\": \"2\"}],\"age\": \"18\"}";
		String arr[] = findStr.split(",");
		String st =null;
		JSONObject jsonObject = JSONObject.parseObject(str);
		for (int i = 0; i < arr.length-1; i++) {
			if (jsonObject.get(arr[i]) instanceof JSONArray){
				JSONArray jsonArray = (JSONArray) jsonObject.get(arr[i]);
				jsonObject  = (JSONObject) jsonArray.get(0);
			} else {
    			jsonObject = (JSONObject) jsonObject.get(arr[i]);
			} 
			continue;
		}
		st = (String) jsonObject.get(arr[arr.length-1]);
		
		System.out.println(st);
	}

你可能感兴趣的:(工具类)