Skip to content

JSON.parseObject(json, Map.class) 整数0为key的问题 #2570

@156370005

Description

@156370005

fastjson1升fastjson2时,使用的是Fastjson v1兼容模块
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.50</version>
</dependency>

出现以下问题

String json = "{0:12,1:13,2:14,\"date\":\"2024-05-14\"}";
Map<Object,Object> map = JSON.parseObject(json, Map.class);

fastjson1取值如下:
Integer date0 = (Integer) map.get(0);// 取到值为12
Integer date1 = (Integer) map.get(1);// 取到值为13

fastjson2用com.alibaba.fastjson.JSON取值如下:
Integer date0 = (Integer) map.get(0);// 取到值为null
Integer date1 = (Integer) map.get(1);// 取到值为13

fastjson2下得到的date0是不对的,发现fastjson2把key为0转成了字符串,但key为1又还是整数,这也太奇怪了。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingfixedquestionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions