0

プロジェクトのrawフォルダーのjsonファイルに次の(およびそれ以上ですが、一部にすぎません)コードがあります。

{
"Monday": [
    {
        "time": "09:15",
        "class": "Nature",
        "room": "AL32"
    },
    {
        "time": "10:15",
        "class": "Nature",
        "room": "AL32"
    }
],
"Tuesday": [
    {
        "time": "12:15",
        "class": "Maths",
        "room": "AL20"
    },
    {
        "time": "13:15",
        "class": "Englsh",
        "room": "AG22"
    }
]....etc

}

次のように表示したい

Time|Class|Room
Monday
09:15|Nature|AL32
10:15|Nature|AL32
Tuesday
12:15|Maths|AL20
13:15|English|AG22
etc etc

私が(これまでに)行ったことは、BufferedReaderを使用してjsonファイルの情報を読み込むことですjsonReader = new BufferedReader(new InputStreamReader(this.getResources()。openRawResource(R.raw.localjsonfile)));

次に、ファイル内のすべてを(LogCatに)印刷できます。

String readLine = null;
// While the BufferedReader readLine is not null 
while ((readLine = jsonReader.readLine()) != null) 
{
    System.out.println(readLine);
}

でもそこからどこへ行けばいいのかわかりません。月曜日に月曜日と呼ばれる配列/オブジェクトに(火曜日に火曜日などと呼ばれる配列/オブジェクトに)何かを格納してから、配列/オブジェクトの値を出力して、私が持っているTextViewフィールドに配置すると思います( android:id = "@ + id / time"、android:id = "@ + id / class、android:id =" @ + id / room ")という3つのテキストビューがあり、テキストビューが画面に再印刷されます必要に応じて。

私はAndroidとJavaの学習を始めたばかりで、jsonについては何も知らないので、これ以上進む方法に固執しています。

4

1 に答える 1

0

行フォルダーからJSONを取得して解析するには、このコードを試してください。

 //Get Data From Text Resource File Contains Json Data.

        InputStream inputStream = getResources().openRawResource(R.raw.localjsonfile);

        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

        int ctr;
        try {
            ctr = inputStream.read();
            while (ctr != -1) {
                byteArrayOutputStream.write(ctr);
                ctr = inputStream.read();
            }
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        Log.v("Text Data", byteArrayOutputStream.toString());
        try {

            // Parse the data into jsonobject to get original data in form of json.  
            JSONObject jObject = new JSONObject(
                    byteArrayOutputStream.toString());

            JSONArray jArray = jObject.getJSONArray("Monday");
            String  time="";
            String class ="";
            String room ="";

            ArrayList<String[]> data = new ArrayList<String[]>();
            for (int i = 0; i < jArray.length(); i++) {
                time= jArray.getJSONObject(i).getString("time");
                class= jArray.getJSONObject(i).getString("class");
                 room= jArray.getJSONObject(i).getString("room");

                data.add(new String[] {time, class,room});
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

JSON解析のヘルプについては、このライブラリを参照してください。JSON解析のその他の例については、この記事をお読みください。

于 2013-01-12T20:17:51.997 に答える