2012-08-27 48 views
3

我正在使用Jackson JSON庫將JSON流映射到POJO。將不可預知的密鑰從JSON映射到POJO

我的JSON的密鑰具有不可預知的名稱。

{ 
    "Random_ID": 
    { 
     "Another_Random_ID": 
     { 
      "some_key": "value" 
      "some_key1": "value1" 
     } 
    } 
    ... 
} 

我想映射這個請求到POJO(具有相同的結構),但是由於不存在這樣的setXXX(其中XXX是一個random_id映射器將會失敗 - 因爲我無法預測名稱)。

將此請求映射到相應對象而不用createJsonParser手動解析它的最佳方法是什麼?

回答

4

如果名字是不可預測的,POJO是不可行的。

但是你可以使用樹模型,如:

JsonNode root = objectMapper.readTree(jsonSource); 

和訪問它作爲一個邏輯樹。另外,如果你想給樹轉換(或任何的子樹,如鑑定是子樹的根節點),你可以這樣做:

MyPOJO pojo = objectMapper.treeToValue(node, MyPOJO.class); 

和回樹

JsonNode node = objectMapper.valueToTree(pojo); 
+0

你釘了它! tnx – user1144031

+0

很高興的作品! – StaxMan