JSON-LIB解析特定的字符串数组时会出问题,如下,我希望解析的json字符串数组是["[abc]"]
String object = "[\"[abc]\"]";
JsonConfig config = new JsonConfig();
config.registerJsonValueProcessor(Date.class, new JsDateJsonValueProcessor());
JSONArray res = JSONArray.fromObject(object, config);
最后在JSONArray中可以看到解析出来的结果为第0个元素:"[abc]"(已经去掉debug时表示字符串的引号),这是因为json-lib在解析到[abc]时认为它为一个JSON字符串,于是在外面加了一对引号
下面是JSON-lib中JSONArray解析时的代码:
Object v = tokener.nextValue( jsonConfig );//v为[abc]字符串 if( !JSONUtils.isFunctionHeader( v ) ){ if( v instanceof String && JSONUtils.mayBeJSON( (String) v ) ){ jsonArray.addValue( JSONUtils.DOUBLE_QUOTE + v + JSONUtils.DOUBLE_QUOTE, jsonConfig ); }else{ jsonArray.addValue( v, jsonConfig ); } fireElementAddedEvent( index, jsonArray.get( index++ ), jsonConfig ); }
如果改成String object = "[\"abc\"]";
则结果为第0个元素:abc(已经去掉debug时表示字符串的引号)
不知大伙有没有遇到过,怎么解决的?