用于提取特定键的 JsonString 值

JsonString value to extract specific key

规范:JARS 在 Java (JDK-15)

中使用 Jackson 进行 Json 解析/提取

语句:String val1 = "[{"UnitId":"106","CategoryId":"403","ProductId":"103 ","ProductName":"加州苹果","ProductWeight":"250"} ]";

问题:我需要从 Json 已验证字符串中提取“ProductName”的值。

问题:我只需要使用 Jakson jar 库 来解析和提取。 我已经尝试在 Whosebug 上使用 jackson 库的示例代码...没有用。

如果有人有示例代码可以尝试,请分享。

关于 卡尔提克

您可以使用 Jackson 的 ObjectMapper 将您的 JSON 反序列化为 POJO。

以下代码假定您有一个 Product POJO,其字段与 JSON 中的字段相对应。请确保您的 POJO 中的字段使用 @JsonProperty:

进行注释
public class Product {
    @JsonProperty("ProductName")
    private String productName;
    [...]

然后您可以将 JSON 映射到数组中:

Product[] products = objectMapper.readValue(val1, Product[].class);

如果你更喜欢列表而不是数组,你可以进行如下操作:

List<Product> products = objectMapper.readValue(val1, new TypeReference<List<Product>>(){});

作为一种选择,如果您不想为此创建对象。你可以这样做:

    private static JsonMapper JSON_MAPPER = new JsonMapper();

    public static String parseProductId(String rawJson) {
    try {
        JsonNode root = JSON_MAPPER.readTree(rawJson);
        return root.get(0).get("ProductId").asText();
    } catch (JsonProcessingException e) {
        throw new IllegalArgumentException("Some information");
    }
}

在我看来,如果我们需要 1-2 个字段,这种方法提供了灵活性。