[alibaba/fastjson]错误json校验通过,这不符合常识。

2025-11-03 171 views
7

问题:在String字符串最后一个对象后边有逗号,可以用JSON.pars()进行正常转换。 示例: { "relationJson": { "key":"common" }, "data": { "jsonColumnRule":{ "type":"Object" }, "productType":{ "jsonColumnRule":{ "type":"Integer", "scope":"1,2,3,4,5" } }, "before":{ "jsonColumnRule":{ "type":"String" } }, "after":{ "jsonColumnRule":{ "type":"String" } }, } }

回答

2

fastjson目前做了一些容错,你希望不支持?

6

赞一个容错,只不过是不是可以打一个WARN出来呢。

9

容错是好事,但是错误的json就是错误的,我要做json校验的话,没有任何异常信息,我会认为他是对的,所以在能容错的情况下把错误信息打出来不是更好。

3

6

我是发现用在线的json校验工具和Gson转换都不能通过才提出来的。

5

Feature.AllowArbitraryCommas 这个特性对单个逗号在前面出现,或者后面出现多个的时候支持容错。但视乎在这个用例的场景(后面单个逗号)在解析的时候并不会被验出无效。 目前没想到好的办法。 mark一下。

0

单独校验一个逗号感觉一样不大。 一般我们说得校验是schema的校验,比如要求有属性a和b,出现c和d,a是int的,结果是string。

0

如何关闭这个容错呢