使用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类,则会获得实体,然后获取其字段,但文件的结构最终会有所不同。我应该只是编写代码来手动输出,而不是杰克逊这样做吗?
答案 0 :(得分:0)
您可以编写自定义反序列化器/序列化器,只手动编写该部分的处理程序;注册可以在全球范围内针对类型以及每个属性进行。 这样你就可以减少明确的工作量。 也可以使用多阶段处理:首先绑定到泛型(Map,JsonNode),转换结构,然后转换为POJO(`ObjectMapper.convertValue()')。