@ikaaki117117 (亜輝 鈴木)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Javaでjsonファイルを読み込み表示させたい

Q&A

Closed

解決したいこと

JSONファイルを読み込んで、各都道府県のidと名前(short)を表示させたいです。

発生している問題・エラー

java.io.FileNotFoundException: sample.json (No such file or directory)
	at java.base/java.io.FileInputStream.open0(Native Method)
	at java.base/java.io.FileInputStream.open(FileInputStream.java:216)
	at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
	at com.fasterxml.jackson.core.TokenStreamFactory._fileInputStream(TokenStreamFactory.java:318)
	at com.fasterxml.jackson.core.JsonFactory.createParser(JsonFactory.java:1208)
	at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:3311)
	at work_java.Lesson09.main(Lesson09.java:22)

該当するソースコード

package work_java;

import java.io.File;
import java.io.IOException;

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

public class Lesson09{
    public static void main(String[] args) {
    	
    	
        // JSONファイルのパス
    	String filePath = "sample.json";


        // ObjectMapperのインスタンスを作成
        ObjectMapper objectMapper = new ObjectMapper();

        try {
            // JSONファイルを読み込む
            JsonNode rootNode = objectMapper.readTree(new File(filePath));

            // "prefectures" 配列内の各都道府県のIDと名前(short)を表示
            JsonNode prefecturesNode = rootNode.get("prefectures");
            for (JsonNode prefectureNode : prefecturesNode) {
                int id = prefectureNode.get("id").asInt();
                String nameShort = prefectureNode.get("short").asText();

                System.out.println("ID: " + id + ", Name (short): " + nameShort);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

例)

自分で試したことスクリーンショット 2023-12-09 15.18.54.png

エラー内容がファイルが見つからないとありますが、ファイルは画像の通り、プロジェクトの直下にあります。そのため何が原因でファイルが読み込めないのかがわかりません。

かれこれ、1週間ほど頭を悩ませています。どうか解決にご協力をお願いできますでしょうか。

0 likes

2Answer

プログラムの実行時のカレントディレクトリが本当にプロジェクト直下なのか確認してみてはどうでしょう?

カレントディレクトリの取得は以下が参考になると思います。

0Like

Comments

  1. @ikaaki117117

    Questioner

    ありがとうございます!試してみます!

Comments

  1. @ikaaki117117

    Questioner

    ありがとうございます!試してみます!

Your answer might help someone💌