首页 > 解决方案 > 如何使用带有不带引号的数字值的java将csv转换为json

问题描述

我正在尝试将 CSV 转换为 Java,因为我正在使用 jackson 库。但是当我转换值时,整数值带有引号。如何解决这个问题呢。

CSV 示例

data1,data2
Test,1
NewTest,2

我期待

[{
    "data1": "Test1",
    "data2": 1
}, {
    "data1": "NewTest",
    "data2": 2
}]

但我越来越

[{
    "data1": "Test1",
    "data2": "1"
}, {
    "data1": "NewTest",
    "data2": "2"
}]

标签: javajackson

解决方案


Java 不以同样1"1"方式对待。您必须将其转换为正确的数字。

try {
    return new JsonPrimitive(Long.parseLong(num)) // parse as a Long.
} catch (NumberFormatException e){
    return new JsonPrimitive(num); // it's not a number.
}

您可能还想为 Double 添加一个检查。


推荐阅读