Android JSON только ОБЪЕКТ Выборка с итерацией - PullRequest
2 голосов
/ 20 марта 2019

У меня есть файл json, который содержит только объекты, теперь я не могу выбрать все объекты с итерацией, так как здесь нет массива.

Вот код: Что я пробовал в моей андроид студии и JSon Data Скриншот enter image description here

  @Override
    protected String doInBackground(String... strings) {
        try {
            url = new URL("https://api.myjson.com/bins/r7dj6");
            httpURLConnection = (HttpURLConnection) url.openConnection();
            httpURLConnection.connect();
            inputStream = httpURLConnection.getInputStream();

           bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
           String line =" ";

           while ((line = bufferedReader.readLine()) != null){
               stringBuffer.append(line);

           }

           String fullfile = stringBuffer.toString();

            JSONObject jsonObject = new JSONObject(fullfile);
            JSONObject jsonObjectchild = jsonObject.getJSONObject("Apartment");




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


        return null;
    }

Ответы [ 2 ]

1 голос
/ 20 марта 2019

Вот полный пример.У меня работает.

HttpURLConnection connection = null;
try {
    URL url = new URL("https://api.myjson.com/bins/r7dj6");
    connection = (HttpURLConnection) url.openConnection();
    connection.connect();
    InputStream inputStream = connection.getInputStream();

    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
    String line;
    StringBuilder stringBuffer = new StringBuilder();
    while ((line = reader.readLine()) != null){
        stringBuffer.append(line);
    }

    JSONObject jsonObject = new JSONObject(stringBuffer.toString());
    JSONObject apartmentObject = jsonObject.getJSONObject("Apartment");
    Iterator<String> keys = apartmentObject.keys();
    while (keys.hasNext()) {
        String flatName = keys.next();
        JSONObject flat = apartmentObject.getJSONObject(flatName);
        String age = flat.getString("age");
        String color = flat.getString("color");
        String name = flat.getString("name");
        String owner = flat.getString("owner");
        String partner = flat.getString("partner");
        Log.d("Flat", flatName + ": " + age + ", " + color + ", " + name + ", " + owner + ", " + partner);
    }
} catch (Exception e) {
    e.printStackTrace();
} finally {
    if (connection != null) {
        connection.disconnect();
    }
}
0 голосов
/ 20 марта 2019

Вы все еще можете повторить:

for (Iterator key=jsonObjectchild.keys();key.hasNext();) {
    JSONObject flatName = json.get(key.next());
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...