[英]how whould I parse JSON with numerical object keys in Jackson JSON
我剛剛開始使用Jackson JSON解析器,我很喜歡它,但是我嘗試解析的JSON對象遇到了問題。
這是我當前的Java代碼:
public class resetPassword {
private String id;
private String key1;
private String key2;
public String getId() {
return id;
}
public void setId(String id) {
this.id= id;
}
public String getKey1() {
return key1;
}
public void setKey1(String key1) {
this.key1= key1;
}
public String getKey2() {
return key2;
}
public void setKey2(String key2) {
this.key2= key2;
}
}
我將如何在Jackson中解析如下內容:
{
"1":{
"key1":"val",
"key2":"val"
},
"2":{
"key":"val",
"key":"val"
}, .. etc
}
任何與此有關的幫助都將大大減少
根據注釋中的信息,我想您需要將遍歷與數據綁定結合起來。
首先,使用遍歷 ,使用{"key1": ..., "key2": ...}
獲取JsonNode
對象。 偽代碼(未經測試):
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(genreJson);
Iterator<String> fieldNames = root.fieldNames();
while (fieldNames.hasNext()) {
String fieldName = fieldNames.next();
JsonNode node = root.get(fieldName);
// now you should have {"key1": ...} in node
}
然后對找到的每個節點使用數據綁定 :
ResetPassword item = mapper.readValue(node, ResetPassword.class);
如果您需要快速的方法,可以將其設置為Map
;
ObjectMapper mapper = new ObjectMapper();
Map<String, Map<String, String>> map = mapper.readValue(br, Map.class);
System.out.println(map);
您的map
現在將是:
{1={key1=val, key2=val}, 2={key1=val, key2=val}}
您可以遍歷Map(s)
並相應地設置ResetPassword
。
PS: br是我的BufferedReader
實例,它讀取放置在numeric.txt
的json
,
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("numeric.txt"), "UTF-8"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.