SDF(SearchDataFormat)需要非典型JSON

时间:2012-05-09 15:38:58

标签: json jackson amazon-cloudsearch

使用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类,则会获得实体,然后获取其字段,但文件的结构最终会有所不同。我应该只是编写代码来手动输出,而不是杰克逊这样做吗?

1 个答案:

答案 0 :(得分:0)

您可以编写自定义反序列化器/序列化器,只手动编写该部分的处理程序;注册可以在全球范围内针对类型以及每个属性进行。 这样你就可以减少明确的工作量。 也可以使用多阶段处理:首先绑定到泛型(Map,JsonNode),转换结构,然后转换为POJO(`ObjectMapper.convertValue()')。