如何从文件中读取多个jsonArrays?

时间:2015-06-24 08:36:27

标签: java android json

我想从文件中读取许多jsonArrays。

这些是文件中的JsonArrays:

 [{name:"John",preis:"123",bild:1235},
  {name:"Smith",preis:"256",bild:7205},
  {name:"Steeven",preis:"632",bild:324035}]

 [{name:"Hans",preis:"85",bild:1005},
  {name:"Peter",preis:"420",bild:22205},
  {name:"Joe",preis:"200",bild:3240}]

 [{name:"Jane",preis:"355",bild:10505},
  {name:"Calith",preis:"630",bild:96505},
  {name:"Eva",preis:"260",bild:32440}]

我无法读取整个文件,但我只能从文件中读取第一个jsonArray。

这是我的代码来阅读它:

ArrayList<Werkzeug> myWerkzeuge = new ArrayList<Werkzeug>();
        String alteBestellung = "";

        try {

            FileInputStream fileInputStream = openFileInput(fileName);
            InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

            String line;

            while ( (line = bufferedReader.readLine()) != null){

                alteBestellung = alteBestellung + line;

            }

            JSONArray jsonArray = new JSONArray(alteBestellung);

            for (int i = 0; i<jsonArray.length(); ++i){

                JSONObject jsonObject = jsonArray.getJSONObject(i);

                String name_werkzeuge = (String) jsonObject.get("name");
                String preis_werkzeuge = (String) jsonObject.get("preis");
                Integer bild_werkzeuge = Integer.valueOf( (String)jsonObject.get("bild") );

                myWerkzeuge.add( new Werkzeug(name_werkzeuge, preis_werkzeuge, bild_werkzeuge));
            }

            fileInputStream.close();
            inputStreamReader.close();
            bufferedReader.close();

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

        } catch (IOException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        }

        String bestellung = " ";

        for (int i = 0; i< myWerkzeuge.size(); ++i) {

            bestellung = bestellung + "\n" + myWerkzeuge.get(i).getName() + "   " + myWerkzeuge.get(i).getPreis() + " €" + myWerkzeuge.get(i).getBild();
        }

        bestellungsTextView.setText( bestellung );

如何从这个文件中读取这三个jsonArrays?

2 个答案:

答案 0 :(得分:0)

你需要的是一个有效的json。 你可能想要一个JsonArray的JsonArray:

[
 [{name:"John",preis:"123",bild:1235},
  {name:"Smith",preis:"256",bild:7205},
  {name:"Steeven",preis:"632",bild:324035}],

 [{name:"Hans",preis:"85",bild:1005},
  {name:"Peter",preis:"420",bild:22205},
  {name:"Joe",preis:"200",bild:3240}],

 [{name:"Jane",preis:"355",bild:10505},
  {name:"Calith",preis:"630",bild:96505},
  {name:"Eva",preis:"260",bild:32440}]
]

答案 1 :(得分:0)

这是无效的json。 首先制作一个有效的json。