Skip to content

[BUG]NaN反序列化问题 #2300

@tiger2015

Description

@tiger2015

问题描述

简要描述您碰到的问题。
fastjson2在反序列化Double类型时,遇到{"x":NaN}或者{"x":"NaN"}都不能正确返回序列化,但是fastjson1可以正常反序列化。

环境信息

请填写以下信息:

  • OS信息: [e.g.:Win10]
  • JDK信息: [e.g.:jdk 1.8.0_312]
  • 版本信息:[e.g.:Fastjson2 2.0.34]

重现步骤

如何操作可以重现该问题:

//可在此输入示例代码
    public static void main(String[] args) {
        String jsonStr = "{\"x\":\"NaN\"}";
        final Data data = JSON.parseObject(jsonStr, Data.class);
        System.out.println(data);
    }

    @lombok.Data
    private static class Data {
        private Double x;
    }

期待的正确结果

对您期望发生的结果进行清晰简洁的描述。
FastJsonTest.Data(x=NaN)

相关日志输出

请复制并粘贴任何相关的日志输出。
Exception in thread "main" com.alibaba.fastjson2.JSONException: illegal fieldName input�, offset 11, character �, line 1, column 12, fastjson-version 2.0.34 {"x":"NaN"}
at com.alibaba.fastjson2.JSONReaderUTF16.readFieldNameHashCode(JSONReaderUTF16.java:1341)
at com.alibaba.fastjson2.reader.ORG_1_1_Data.readObject(Unknown Source)
at com.alibaba.fastjson2.JSON.parseObject(JSON.java:722)

附加信息

如果你还有其他需要提供的信息,可以在这里填写(可以提供截图、视频等)。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingfixed

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions