Jiang Shan
Jiang Shan
你好,读取 Boolean 用 readBool()
> switch (ch) ... case '0' ... case 't' ... 一部分代码确实看起来重复,但这是出于性能优化和解析逻辑独立性的考虑。对于 JSON 解析来说,每个细节的优化都可能显著影响吞吐量。
> 在 `readBool` 之前如何知道是 Boolean ? 就像 readString 之前有 isString。 这方面的文档确实有些缺失,等有时间我去完善一下
会兼容 jdk25 的,我看温老师在 wiki 里发布了这个:https://github.com/alibaba/fastjson2/wiki/fastjson-2.1-plan
字符串会解析成什么样呢?我本地测试反序列化没有问题的。是因为这个吗: ``` for (Map.Entry entry : levelInfoMap.entrySet()) { tabletopLevelMap.put(Integer.parseInt(entry.getKey()), (Integer) entry.getValue()); } ``` 建议修改为: ``` for (Map.Entry entry : levelInfoMap.entrySet()) { tabletopLevelMap.put((Integer) entry.getKey(), (Integer) entry.getValue()); } ```
使用 Feature.NonStringKeyAsString 特性可以吗? `JSONObject.parseObject("{19:2,29:1,39:3}", Feature.NonStringKeyAsString);`
能否提供具体的不合法JSON?我本地测试,key非数字是可以解析的;value若是小数,1.x也不会将其解析成Integer啊
请提供一些典型的不合法数据片段,根据你目前的描述,我没测试出其它什么不兼容的地方(除了上面的key问题)
你好,JSON格式数据应该不支持注释的,可以用一些伪注释
> 但是fastsjon 1.2.83是支持的,fastjson2这个特性反而退化了么; 主要是处理JSON5文件,里面会有一些注释 之前看项目的作者温老师说,fastjson2会去掉一些少有人使用的特性,不知道是不是因为这个