Fastjson2--fix

Fastjson2--fix
mengnankkzhou当 JSON 字符串中包含无引号的数字 key 时,fastjson2 的反序列化行为不一致
BUG描述&&原因
当 JSON 字符串中包含无引号的数字 key 时,fastjson2 的反序列化行为不一致
字段存在的时候可以正确处理无引号数字 key 的逻辑
字段不存在的时候无法处理
具体改动
在 skipObject 方法中添加对无引号数字 key 的处理逻辑 在utf16/utf-8中
- 新增了一个重载方法
skipNumber(..., boolean allowColon),允许在跳过数字后紧跟着冒号(:),这在处理未加引号的数字作为键的 JSON 结构时是必需的。 - 在判断数字结束字符时,新增了
!(allowColon && ch == ':')条件,即如果允许冒号且当前字符是冒号,则不抛出错误。 - 在解析对象键值对时,增加了对未加引号的数字作为键的处理逻辑。
- 如果当前字符是数字或
'-''+',则认为这是一个未加引号的数字键,调用skipNumber(..., true)来跳过数字,并手动跳过紧随其后的冒号和空白字符。 - 否则,退回到原有的
skipName方法来处理字符串类型的键。
评论
匿名评论隐私政策
TwikooValine
✅ 你无需删除空行,直接评论以获取最佳展示效果






