我正在使用喜歡製作輪子的Web服務。對於一系列對象,不是將數據存儲在JSON數組中,而是爲序列中的每個索引創建一個新節點。需要反序列化奇數Json結構的幫助
{
"sequence": {
"0": {
"foo": "foo",
"bar": "bar",
"baz": "baz"
},
"1": {
"foo": "foo",
"bar": "bar",
"baz": "baz"
},
"2": {
"foo": "foo",
"bar": "bar",
"baz": "baz"
}
}
}
我想知道如果任何人有一個優雅的解決方案或理智的方式與傑克遜
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;
}
+1對於重新發明輪子的扭曲:)至於解決方案,我認爲你最好的選擇是將它讀入一個通用的json對象並將其轉換爲序列。 –
通用json是什麼意思?你是在談論把它作爲一個字符串存儲並在後面處理它? – Dan
不,我認爲引用的是一個樹,比如'JsonNode root = mapper.readAsTree(source);',然後訪問部分。 – StaxMan