我正在使用一个喜欢制作轮子的网络服务。对于一系列对象,它们不是将数据存储在 JSON 数组中,而是为序列的每个索引创建一个新节点。
{
"sequence": {
"0": {
"foo": "foo",
"bar": "bar",
"baz": "baz"
},
"1": {
"foo": "foo",
"bar": "bar",
"baz": "baz"
},
"2": {
"foo": "foo",
"bar": "bar",
"baz": "baz"
}
}
}
我想知道是否有人有一个优雅的解决方案或理智的方法来将其反序列化为带有杰克逊的序列 bean 的数组或集合
public class SequenceElement {
String foo, bar, baz;
// Getters and setters below
}
将序列用作 JsonNode 是我能想到的最好的 atm 方法,这里有一些未经测试的 sudo 代码。
ObjectMapper objectMapper = new ObjectMapper();
@JsonProperty("sequence")
public void setSequence(JsonNode sequence) {
List<SequenceElement> list = new ArrayList<SequenceElement>();
int i = 0;
while( sequence.get( String.valueOf(i) ) != null ) {
JsonNode element = sequence.get( String.valueOf(i) );
list.add( objectMapper.readValue( element, SequenceElement.class );
i += 1;
}
this.sequence = list;
}