猿问

如何使用带有数字值而不带引号的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"

}]


墨色风雨
浏览 199回答 2
2回答

呼啦一阵风

在 JSON字符串上,它仍然很容易完成:String jsonWithNumbers(String json) {    return json.replaceAll("(\"data2\": *)\"(\\d+)\"", "$1$2");    //return json.replaceAll("(\"(data2|data4|data13)\": *)\"(\\d+)\"", "$1$2");    //return json.replaceAll("(\"[^\"]+\": *)\"(\\d+)\"", "$1$2");}

森栏

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 添加一个检查。
随时随地看视频慕课网APP

相关分类

Python
我要回答