Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaでJacksonを使用してJSONファイル内の値を検索・取得する方法

ObjectNodeクラスとは

com.fasterxml.jackson.databind.node.ObjectNodeクラスは、JSONコンテンツ内のJSONオブジェクト構造をマッピングするために使用できるクラスです。JSONファイル内の特定の値を検索するには、ObjectNodeクラスのget()メソッドを使用します。このメソッドは、オブジェクトノード内の指定されたフィールドの値にアクセスするためのもので、フィールド名を引数として渡すことで対応する値をJsonNodeとして取得できます。

また、指定したフィールドが存在するかどうかを事前に確認したい場合は、has()メソッドが便利です。フィールド名がノード内に存在すればtrueを返すため、存在チェックと値の取得を組み合わせた安全なコードを書くことができます。

構文

public JsonNode get(String fieldName)

使用例

以下の例では、JSON形式の文字列をObjectMapperを使ってObjectNodeに読み込み、「name」フィールドが存在するかどうかをhas()メソッドで確認した上で、get()メソッドによってその値を取得して表示しています。

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;

public class ObjectNodeTest {
    public static void main(String args[]) throws Exception {
        String jsonString = "{\"Id\":101, \"name\":\"Raja Ramesh\", \"address\":\"Madhapur\"}";
        ObjectMapper mapper = new ObjectMapper();
        ObjectNode node = mapper.readValue(jsonString, ObjectNode.class);
        if(node.has("name")) {
            System.out.println("NAME: " + node.get("name"));
        }
    }
}

実行結果

NAME: "Raja Ramesh"

押さえておきたいポイント

  • nullの返却: get()メソッドは、指定したフィールドが存在しない場合にnullを返します。NullPointerExceptionを防ぐためにも、事前にhas()メソッドで存在確認を行うのが安全です。
  • 文字列として取得: 引用符を含まない純粋なテキストが必要な場合は、node.get("name").asText()のようにasText()メソッドを使用すると便利です。
  • 型変換: 数値として扱いたい場合はasInt()やasDouble()、真偽値ならasBoolean()など、目的に応じた変換メソッドが用意されています。

このように、JacksonのObjectNodeクラスを活用することで、JSONデータの構造を柔軟に操作しながら、必要な値を簡単かつ安全に検索・取得することができます。

  1. 【Java】JSONオブジェクトをファイルに書き込む方法(json-simpleライブラリの使い方)

    JSON(JavaScript Object Notation)は、現在もっとも広く使われているデータ交換フォーマットのひとつです。軽量であることと、特定のプログラミング言語に依存しないことが大きな特徴で、異なるシステム間でのデータやり取りに最適です。 JavaでJSONファイルを読み書きするには、json-simple ライブラリが便利です。json-simpleは軽量なJSON処理ライブラリで、JSONテキストのエンコード(書き込み)とデコード(読み込み)の両方に対応しており、JSON仕様(RFC4627)に完全準拠しています。 ライブラリの準備 json-simpleを使用するには、まず

  2. JavaでJSONファイルを作成する方法をわかりやすく解説

    JSON(JavaScript Object Notation)は、人間が読みやすい形式でデータを交換するために設計された、軽量なテキストベースのオープン標準フォーマットです。JSONの記法は、C、C++、Java、Python、Perlなど、多くのプログラミング言語に精通したプログラマーにとって馴染み深いものとなっています。 JSONドキュメントのサンプル 以下は、書籍情報を格納した典型的なJSONドキュメントの例です。 { book: [ { id: 01, language: Java, ed