簡體   English   中英

如何使用不帶引號的數字值將csv轉換為json

[英]how to convert csv to json using java with number value without quotes

我正在嘗試使用傑克遜庫將CSV轉換為Java。 但是,當我轉換值時,整數值帶有引號。 如何解決這個問題呢。

CSV范例

data1,data2
Test,1
NewTest,2

我期待

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

但是我越來越

[{
    "data1": "Test1",
    "data2": "1"
}, {
    "data1": "NewTest",
    "data2": "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添加支票。

在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");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM