java - 使用 Jackson 解析 JSON Bing 结果

标签 java json jackson bing

我想使用 Jackson 来解析 JSON Bing 结果,但我对如何使用它有点困惑。以下是从 Bing 收到的 JSON 示例:

{
   "SearchResponse":{
      "Version":"2.2",
      "Query":{
         "SearchTerms":"jackson json"
      },
      "Web":{
         "Total":1010000,
         "Offset":0,
         "Results":[
            {
               "Title":"Jackson JSON Processor - Home",
               "Description":"News: 04-Nov-2011: Jackson 1.9.2 released; 23-Oct-2011: Jackson 1.9.1 released; 04-Oct-2011: Jackson 1.9.0 released (@JsonUnwrapped, value instantiators, value ...",
               "Url":"http:\/\/jackson.codehaus.org\/",
               "CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=jackson+json&d=4616347212909127&w=cbaf5322,11c785e8",
               "DisplayUrl":"jackson.codehaus.org",
               "DateTime":"2011-12-18T23:12:00Z",
               "DeepLinks":"[...]"
            }
         ]
      }
   }
}

我真的只需要结果数组中的数据。这个数组可以有 0 到 n 个结果。有人可以提供一个示例来说明如何使用 Jackson 反序列化“Results”吗?

最佳答案

首先,将您的 JSON 视为一棵树。实例化一个 ObjectMapper 并使用 readTree() 方法读取您的 JSON。

这将为您提供一个 JsonNode。获取结果作为另一个 JsonNode 并循环遍历数组:

final ObjectMapper mapper = new ObjectMapper();

final JsonNode input = mapper.readTree(...);

final JsonNode results = input.get("SearchResponse").get("Web").get("Results");

/*
 * Yes, this works: JsonNode implements Iterable<JsonNode>, and this will
 * cycle through array elements
 */
for (final JsonNode element: results) {
    // do whatever with array elements
}

您还可以考虑使用 JSON 架构实现来验证您的输入。无耻插件:https://github.com/fge/json-schema-validator

关于java - 使用 Jackson 解析 JSON Bing 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8610657/

相关文章:

java - EJB3 计时器是否继承到创建它们的 bean?

java - 组合语法对 Java 有用吗?

java - Resteasy 在 Wildfly 14 (Java 11) 上以文本格式导出日期,而不是在 Wildfly 9 (Java 8) 上以数字格式导出日期

java - Jackson:如何为包含子对象作为字段的多个对象包含子对象的不同属性

java - 在 Hybris 中从 -items.xml 生成最终类

java - 类设计: change text on button click

python - 使用 django 序列化两个不同的模型

javascript - 文件未在本地主机上更新

java - 上传 CSV 文件并在数据网格中显示预览

java - 如何使用 Jackson JSON 将 JSON 字符串转换为 Map<String, String>