1概要

このクイックチュートリアルでは、Jackson 2を使ってJSON文字列を

JsonNode

** (

com.fasterxml.jackson.databind.JsonNode

)に変換する方法を説明します。

あなたがもっと深く掘り下げて

あなたがジャクソン2

ですることができる** 他のクールなことを学びたいなら –

メインのジャクソンチュートリアル

に向かって進んでください。


2クイック解析

非常に簡単に言えば、JSON Stringを解析するために必要なのは

ObjectMapper

だけです。

@Test
public void whenParsingJsonStringIntoJsonNode__thenCorrect()
  throws JsonParseException, IOException {
    String jsonString = "{"k1":"v1","k2":"v2"}";

    ObjectMapper mapper = new ObjectMapper();
    JsonNode actualObj = mapper.readTree(jsonString);

    assertNotNull(actualObj);
}


3低レベル解析

なんらかの理由で、それよりも低いレベルに移動する必要がある場合は、次の例では実際のStringの解析とともに

JsonParser

を担当します。

@Test
public void givenUsingLowLevelApi__whenParsingJsonStringIntoJsonNode__thenCorrect()
  throws JsonParseException, IOException {
    String jsonString = "{"k1":"v1","k2":"v2"}";

    ObjectMapper mapper = new ObjectMapper();
    JsonFactory factory = mapper.getFactory();
    JsonParser parser = factory.createParser(jsonString);
    JsonNode actualObj = mapper.readTree(parser);

    assertNotNull(actualObj);
}


4

JsonNode


を使う

JSONがJsonNodeオブジェクトに解析されたら、

Jackson JSON Tree Model

を使って作業することができます。

@Test
public void givenTheJsonNode__whenRetrievingDataFromId__thenCorrect()
  throws JsonParseException, IOException {
    String jsonString = "{"k1":"v1","k2":"v2"}";
    ObjectMapper mapper = new ObjectMapper();
    JsonNode actualObj = mapper.readTree(jsonString);

   //When
    JsonNode jsonNode1 = actualObj.get("k1");
    assertThat(jsonNode1.textValue(), equalTo("v1"));
}


5結論

この記事では、JSONストリングをJacksonの

JsonNode

モデルに解析して、JSONオブジェクトの構造化処理を可能にする方法を説明しました。

これらすべての例とコードスニペットの実装は、https://github.com/eugenp/tutorials/tree/master/jackson#readme

にあります。

– これはEclipseベースのプロジェクトです。そのままインポートして実行するのは簡単です。