mar*_*ers 2 java twitter json jackson
在未指定游标的情况下点击twitter friends / ids API端点将返回以下JSON响应:
["243439460","13334762", "14654522"]
但是,当指定游标时,您会得到记录的格式:
{"next_cursor":0,"previous_cursor":0,"ids":["243439460","13334762","14654522"]}
使用Jackson反序列化第二个响应很容易使用
@JsonIgnoreProperties(ignoreUnknown = true)
public class FriendIds {
private List<String> ids;
public List<String> getIds() { return ids; }
public void setIds(List<String> ids) { this.ids = ids; }
}
Run Code Online (Sandbox Code Playgroud)
和
FriendIds friendIds = new ObjectMapper().readValue(jsonStr, FriendIds.class);
但是,我还没有找到类似的方法来反序列化FriendIds使用Jackson 的第一个响应。关于如何做到这一点的任何想法?
首先将它们映射到ID列表怎么样:
List<String> ids = mapper.readValue(json, List.class); // works because String happens to be 'natural' type for JSON Strings
Run Code Online (Sandbox Code Playgroud)
然后只是构造包装对象?
杰克逊没有真正的方法知道要使用JSON数组来构造POJO,其中的一个字段将包含列表的内容,除非编写自定义反序列化器。如果您想这样做,那是有可能的。这实际上可以支持这两种情况。但是需要一些思考,对于JSON对象使用一种方法(默认POJO deser),对JSON数组使用另一种方法。因此,在Jackson之外进行此操作可能是最简单的。
| 归档时间: |
|
| 查看次数: |
2291 次 |
| 最近记录: |