我正在尝试使用杰克逊库将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"
}]
答案 0 :(得分:0)
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添加支票。
答案 1 :(得分:0)
在JSON string 上,它仍然很容易做到:
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");
}