1. ホーム
  2. java

[解決済み] JsonNodeをPOJOに変換する

2022-04-21 09:12:53

質問

これは少し珍しいかもしれませんが、私は、ある特定のオブジェクトを変換/マップする効率的な方法を探しています。 JsonNodePOJO .

モデルの情報の一部をjsonファイルに保存し、モデルのいくつかのバージョンをサポートする必要があります。

私は、JsonNodeでjsonファイルをメモリにロードし、それを私のモデルの最新バージョンと一致させるために、いくつかのバージョニング戦略を適用しています。

    ObjectMapper mapper = new ObjectMapper();
    BufferedReader fileReader = new BufferedReader(new FileReader(projPath));

    JsonNode rootNode = mapper.readTree(fileReader);

    //Upgrade our file in memory
    applyVersioningStrategy(rootNode);

    ProjectModel project = mapJsonNodeToProject(rootNode);

もっと早くできる方法がない限り、私はおそらく、単に手作業で JsonNodes をモデルに追加します。

解決方法は?

Jackson 2.4では、以下のように変換することができます。

MyClass newJsonNode = jsonObjectMapper.treeToValue(someJsonNode, MyClass.class);

ここで jsonObjectMapper はジャクソン ObjectMapper .


古いバージョンのJacksonでは、次のようになります。

MyClass newJsonNode = jsonObjectMapper.readValue(someJsonNode, MyClass.class);