0

アプリ内のデータを使用するために、HashMap 内の json を解析しようとしています。

コードの簡略版は次のとおりです。

        JSONArray array1 = new JSONArray(json);
        for (int i = 0; i < array1.length(); i++) {
            HashMap<String, String> map = new HashMap<String, String>();
            JSONObject object1 = array1.getJSONObject(i);
            JSONObject object2 = object1.getJSONObject("job");

            JSONArray array2 = object2.getJSONArray("formations");

            if (array2.length() != 0) {
                for (int i1 = 0; i1 < array2.length() - 1; i1++) {
                    JSONObject object3 = array2.getJSONObject(i1);
                    map.put("formation-created_at",

                }
            }
            map.put("testimony", object2.getString("testimony"));

            JSONArray array3 = object2.getJSONArray("themes");

            if (array3.length() != 0) {
                for (int i2 = 0; i2 < array3.length() - 1; i2++) {
                    JSONObject object4 = array3.getJSONObject(i2);

                    map.put("themes-intro", object4.getString("intro"));
                }
            }

            JSONObject object5 = object2.getJSONObject("sector");

            map.put("sector-description", object5.getString("description"));
            list.add(map);
        }

        Log.d("testimony", list.get(1).get("testimony"));
        Log.d("themes-intro", list.get(1).get("themes-intro"));

次のコマンドを使用して、マップ内の最初のオブジェクトを復元できます。

Log.d("testimony", list.get(1).get("testimony"));

しかし、ループ内にいる人を回復することはできません:

Log.d("themes-intro", list.get(1).get("themes-intro"));

logcat は次のエラーを返します。

FATAL EXCEPTION: main
java.lang.NullPointerException: println needs a message
at android.util.Log.println_native(Native Method)
at android.util.Log.d(Log.java:138)

ループから呼び出す "themes-intro" を指定する必要があることはわかっていますが、式に .get(x) を追加することはできません。

編集 :

完全な json は次のとおりです: http://komfushee.com/documents/ctai/jobs.json

そして、コードを編集して、コードの完全なバージョンを提供しました

4

1 に答える 1