JSON-LIB解析字符串数组时的Bug?

探讨了使用JSON-Lib解析特定格式的JSON字符串数组时遇到的问题,即数组元素被错误地视为JSON字符串并被额外包裹了引号。通过对比不同输入情况下的行为,寻求解决方案。

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时表示字符串的引号)
不知大伙有没有遇到过,怎么解决的?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值