用于提取特定键的 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 个字段,这种方法提供了灵活性。
规范: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 个字段,这种方法提供了灵活性。