Java 将嵌套的 JSON 转换为 CSV

时间:2021-02-01 18:02:19

标签: java json csv jackson

我正在创建一个从 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/

0 个答案:

没有答案