Java解析JSON字符串时,如果value中有“[]”,则会在解析后的JSON对象中将此value多加一对双引号解决办法;Java遍历JSON

场景描述:

        前台传送过来的JSON字符串为:{"AGE":"[0 TO 1]"},在Java中解析为JSON之后,在控制台输出为:{"AGE":"\"[0 TO 1]\""};而当传送的字符串为{"AGE":"{1 TO 14]"}时,转换成JSON之后,在控制台输出为{"AGE":"{1 TO 14]"};

推断:

        可能是因为两个中括号在JSON中是特殊的符号,就和“:”一样为特殊的符号。

这里提一下Java中遍历JSON的方法

        JSONObject jsonObject = new JSONObject(jsonString);
	Iterator iterator = jsonObject.keys();
	while(iterator.hasNext()){
	        key = (String) iterator.next();
	        value = jsonObject.getString(key);
	}

处理办法:

        在调用时,将value两边的双引号去掉

        JSONObject fqJson=JSONObject.fromObject(request.getParameter("fq"));
	Iterator iterator = fqJson.keys();
	String key;
	while(iterator.hasNext()){
	    key = (String) iterator.next();
	    // 使用替换,是为了去除字符串中中括号两边多加的双引号,因为年龄范围是范围,如果加了双引号就指的字符串
	    fqmap.put(key,fqJson.getString(key).replace("\"",""));
	}





猜你喜欢

转载自blog.csdn.net/HenryMrZ/article/details/80819653
今日推荐