Skip to content

[BUG] Parse decimal point number with suffix L #2768

@Cooperzzy

Description

@Cooperzzy

问题描述

{"value": 1.23L}整体会解析为long,得到123

环境信息

  • OS信息: [MacOS 12.7.4 M1 Pro 16 GB]
  • JDK信息: [Openjdk 17.0.6]
  • 版本信息:[Fastjson2 2.0.51]

重现步骤

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import org.junit.jupiter.api.Test;

public class Test_1041 {
    @Test
    public void test() {
        String jsonStr = "{\"value\": 1.23L}";
        JSONObject jsonObject = JSON.parseObject(jsonStr);
        Long result1 = jsonObject.getLong("value");
        Float result2 = jsonObject.getFloat("value");
        String result3 = jsonObject.getString("value");
        System.out.println(result1);
        System.out.println(result2);
        System.out.println(result3);
    }
}

相关日志输出

fastjson 1.x:
1
1.23
1.23

fastjson2 2.0.51:
123
123.0
123

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingfixed

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions