Java Jsonファイルを読み込みオブジェクトにする

JavaのJsonファイルを読み込みオブジェクトにするサンプルです。
ライブラリとしてjacksonを使用します。
(確認環境:JDK 11)

目次

サンプル 読み込むファイル(テストファイル)
  JSONを読み込みオブジェクトにする
必要なライブラリ(jackson)

読み込むファイル(jsonTest1.txt)

文字コードは、UTF-8で保存します。

{
    "recodNo": 2000,
    "syain": [
        {
            "id": "1",
            "name": "suzuki",
            "sikaku": [
                "基本",
                "応用"
            ]
        },
        {
            "id": "2",
            "name": "tanaka",
            "sikaku": [
                "ネットワーク"
            ]
        }
    ]
}

配列([ ])とオブジェクト({ })があります。

JSONを読み込みオブジェクトにする

package test1;

import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

public class Test1 {
	public static void main(String[] args) {
		Path path1 = Paths.get("D:\\Test1","jsonTest1.txt");
        
        ObjectMapper om = new ObjectMapper();
        JsonNode json;
		try {
			json = om.readTree(path1.toFile());
			
	        System.out.println(json.get("recodNo")); //2000	         
	        System.out.println(json.get("syain").get(0).get("id")); //"1"
	        System.out.println(json.get("syain").get(0).get("name")); //"suzuki"
	        System.out.println(json.get("syain").get(0).get("sikaku").get(0)); //"基本"
	        System.out.println(json.get("syain").get(0).get("sikaku").get(1)); //"応用"       
	        System.out.println(json.get("syain").get(1).get("id")); //"2"
	        System.out.println(json.get("syain").get(1).get("name")); //"tanaka"
	        System.out.println(json.get("syain").get(1).get("sikaku").get(0)); //"ネットワーク"	        
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

17行目のtoFileメソッドは、ファイルオブジェクトを返します。
readTreeメソッドは、ファイルオブジェクトを引数にしてJsonNodeオブジェクトを返します。
Jsonの値の取得は19行目以降のようにgetメソッドを使用します。

必要なライブラリ(jackson)

pom.xmlの<dependencies>の間に以下のコードを追加します。

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
   <version>2.9.7</version>
</dependency>

jacksonのライブラリが必要です。

関連の記事

Java JacksonでJSONを変換するサンプル

△上に戻る