3

Jackson JSON ライブラリを使用して、JSON ストリームを POJO にマップしています。

私の JSON のキーには、予測できない名前があります。
すなわち

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

このリクエストを (同じ構造の) POJO にマップしたいのですが、そのような setXXX がないため (XXX は random_id です - 名前を予測できないため)、マッパーは失敗します。

createJsonParser で手動で解析せずに、このリクエストを対応するオブジェクトにマップする最良の方法は何でしょうか。

4

1 に答える 1

4

名前が予測できない場合、POJOは進むべき道ではありません。

ただし、次のようにツリーモデルを使用できます。

JsonNode root = objectMapper.readTree(jsonSource);

論理ツリーとしてアクセスします。また、ツリー(またはサブツリーのルートであるノードによって識別されるサブツリーのいずれか)を変換する場合は、次の操作を実行できます。

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

そして木に戻る

JsonNode node = objectMapper.valueToTree(pojo);
于 2012-08-27T18:13:45.190 に答える