首页 > 解决方案 > 如何从 JSON HTTP 响应 Spring Boot 中仅解析 1 个变量

问题描述

嗨,我想使用 Java(+Spring Boot)以最优化的方式从 GET 响应中解析 1 个值。

{
    "table": "A",
    "currency": "usd",
    "code": "USD",
    "rates": [
        {
            "no": "073/A/NBP/2021",
            "effectiveDate": "2021-04-16",
            "mid": 3.7978
        }
    ]
}

我正在寻找在不为此响应创建 DTO 的情况下解析“中间”值的方法。在最坏的情况下,我只会做一个子字符串。

标签: javajsonspringspring-bootdto

解决方案


尝试这个。

String input = "{\r\n"
    + "    \"table\": \"A\",\r\n"
    + "    \"currency\": \"usd\",\r\n"
    + "    \"code\": \"USD\",\r\n"
    + "    \"rates\": [\r\n"
    + "        {\r\n"
    + "            \"no\": \"073/A/NBP/2021\",\r\n"
    + "            \"effectiveDate\": \"2021-04-16\",\r\n"
    + "            \"mid\": 3.7978\r\n"
    + "        }\r\n"
    + "    ]\r\n"
    + "}";
String midValue = input.replaceFirst("(?s).*\"mid\"\\s*:\\s*([-.\\d]+).*", "$1");
System.out.println(midValue);

输出:

3.7978

推荐阅读