0

使用 Jackson 连接到 Amazon CloudSearch,后者以 SDF 格式提取数据。这是一个例子:

[ {
  "type" : "add",
  "id" : "images_to_search_csv_1",
  "version" : 1336526759,
  "lang" : "en",
  "fields" : {
    "content" : "http://upload.wikimedia.org/wikipedia/commons/thumb/4/43/Timba%2B1.jpg/220px-Timba%2B1.jpg",
    "title" : "Simba",
    "source" : "wikipedia",
    "description" : "Simba the wolf dog.",
    "type" : "Image"
  }
}, {
  "type" : "add",
  "id" : "images_to_search_csv_2",
  "version" : 1336526760,
  "lang" : "en",
  "fields" : {
    "content" : "http://www.wolfzone1.com/photos/sedona-01d%20copy.jpg",
    "title" : "Wolf",
    "source" : "Wolf Zone",
    "description" : "Another wolf.",
    "type" : "Image"
  }
} ]

请注意,这些字段是您提交的实体的字段。很明显,如果你只是将该实体绑定到 SDF 类,你会得到实体,然后是它的字段,但文件的结构最终会有所不同。我应该只编写代码以手动输出而不是让杰克逊来做吗?

4

1 回答 1

0

您可以编写自定义反序列化器/序列化器,仅手动编写该部分的处理程序;注册可以在全球范围内针对类型进行,也可以在每个属性的基础上进行。这样,您可以大大减少显式工作量。也可以使用多阶段处理:首先绑定到通用的东西(Map,JsonNode),稍微转换结构,然后转换到/从 POJO(`ObjectMapper.convertValue()')。

于 2012-05-10T16:34:08.037 回答