我正在创建一个从 HTTP GET 请求获取 JSON 对象的 Java 服务。 这是我得到的 JSON 对象的一个例子:
{
"data": [{
"itemNumber": "547325645",
"manufacturer": "LV3",
"name": "Levis 501",
"minimumQuantity": "1.0",
"maximumQuantity": "10.0",
"prices": [{
"currency": "EUR",
"amount": "80.0"
}]
}, {
"itemNumber": "224145625",
"manufacturer": "LV3",
"name": "Levis 502",
"minimumQuantity": "1.0",
"maximumQuantity": "10.0",
"prices": [{
"currency": "EUR",
"amount": "90.0"
}]
}],
"pagination": {
"offset": 0,
"limit": 2,
"total": 1925
}
}
现在我正在使用 Jackson 将我的 HttpResponse 映射到一个 JSON 对象:
productListResponse = new BufferedReader (
new InputStreamReader(getResponse.getEntity().getContent(), StandardCharsets.UTF_8))
.lines()
.collect(Collectors.joining("\n"));
JsonNode productListJson = mapper.readTree(productListResponse);
我现在遇到的问题是我无法正确解析这个 JSON。例如,我想省略许多值,例如数量或货币。我还想将制造商值转换为另一个文本,在本例中为“Levis”。但是现在失败的是数据列表,这与映射器不符。我得到一个空对象,它不包含 JSON,但我已经测试过我是否得到了响应,我确实得到了响应。当然,下一个问题是价格也在列表中,我也不知道如何继续。
简而言之,我只想要一个以分号分隔的 CSV 文件,我可以在其中从 JSON 中提取单个值。当然,我已经做了很多研究,也找到了可靠的信息,但不适用于我的情况。
这些是我已经使用过的一些来源:
https://www.baeldung.com/java-converting-json-to-csv
Converting JSON to XLS/CSV in Java
https://docs.aspose.com/cells/java/convert-json-to-csv/