@ikaaki117117 (亜輝 鈴木)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Javaでsample.jsonを読み込んで表示させたい

Q&A

Closed

解決したいこと

Javaでsample.jsonというファイルを読み込んで、表示させたい

現在、エクリプスでsample.jsonというファイルを読み込み各都道府県のidと名前(short)を表示させるという課題をおこなっておりますが、なかなか思うように行かず皆様のお力添えをお願いしたいです。

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

出ているエラーメッセージを入力

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "com.fasterxml.jackson.databind.JsonNode.iterator()" because "prefecturesNode" is null
	at work_java.Lesson09.main(Lesson09.java:26)


NameError (uninitialized constant World)


または、問題・エラーが起きている画像をここにドラッグアンドドロップ

### 該当するソースコード
```言語名Java
ソースコードを入力

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 = "/Users/suzukiaki/Desktop/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 19.44.33.png

エラー文を見てファイルパスも間違ってないはずですが、何が原因かもわかりません。
全然進まず困っているのでお力添えをよろしくお願いいたします。

0 likes

2Answer

「because "prefecturesNode" is null」となっているので、「prefectures」キーによる

jsonの取得に失敗していると思われます。

「sample.json」の中身を確認してみるとよいと思われます。

もしかしたら、下記でうまくいくかもしれません。

「JsonNode rootNode = objectMapper.readTree(Paths.get(filePath).toFile());」

0Like

Comments

  1. @ikaaki117117

    Questioner

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

  2. jsonはエラーなく表示されるようになりましたか?

Comments

  1. @ikaaki117117

    Questioner

    いえ、まだ解決していないです。

  2. ならばスレッドを乱立しないで、前のスレッドで話を続けましょう。ここはあなた専用の Q&A サイトではないので、スレッドの乱立はここの閲覧者に迷惑になります。

    また、マルチポストは決して歓迎されることではないと分かってますか? 分からないなら、「掲示板 マルチポスト」をキーワードにググって出てくる記事を 2, 3 読んでください。

  3. @ikaaki117117

    Questioner

    申し訳ありません。スレッドは前のもので続けて話を続けるようにします。
    しかし、マルチポストが悪とされているのは驚きました。

  4. スレッドは前のもので続けて話を続けるようにします。

    今更手遅れなので、前のスレッドの No such file or directory の問題が回答で解決したなら、前のスレッドの回答のコメント欄にその旨書いてください。

    そしてこのスレッドでは、前の続きであること、No such file or directory の問題は解決したが、別の問題 NullPointerException が出て、それに対する質問であることを書いて、ここで質問を続けるのが良いと思います。

    マルチポストが悪とされているのは驚きました。

    そういう発言を聞くことが自分には驚きです。前のスレッドでもこのスレッドでも回答をもらってますよね。なのに他で聞くというのは、ここの回答者の回答は役に立たないと言ってるのと同じですよ。

  5. @ikaaki117117

    Questioner

    「ここの回答者の回答は役に立たないと言ってる」のはあなたの解釈であって、僕は違います。
    同じプラットフォームで連呼したのは僕のミスですが、複数のプラットフォームで同じ質問をするのは良いと思っているので。勝手にマルチポスト警察ごっこをするのは構いませんが、これ以上は時間の無駄なので無視させていただきます。

  6. 「ここの回答者の回答は役に立たないと言ってる」のはあなたの解釈であって、僕は違います。

    どう違うのかな? 

    どういうつもりで先のスレッドの回答、このスレッドの回答のことを試した結果も書かないでクローズするなどという回答者さんに失礼なことをするのかな? 役に立ったか/立たなかったかのフィードバックぐらいは書いてはいかが?

    複数のプラットフォームで同じ質問をするのは良いと思っているので。

    stckoverflow のスレッドは削除したのは、マルチポストはまずいと思ったからでは? 

Your answer might help someone💌