Android как: получить JSONObject и JSONArray - PullRequest
0 голосов
/ 16 мая 2019

Я не могу получить JSONArray и JSONObjects из моего файла json.

Вот так я ввожу свой массив и объекты.

query1.getFirstInBackground(new GetCallback<ParseObject>() {
                @Override
                public void done(ParseObject object, ParseException e) {
                    if (e == null) {
                        final JSONObject myObject = new JSONObject();
                        try {
                            myObject.put("Preço", gymClassPrice.getText().toString());
                            myObject.put("Aula", gymClass.getText().toString());
                            myObject.put("Horario", gymClassSchedule.getText().toString());
                        } catch (JSONException e1) {
                            e1.printStackTrace();
                        }
                        myArray.put(myObject);
                        gyms.put("Classes", myArray);
                        gyms.saveInBackground();
                    } else {

                        gyms.put("Name", gymName.getText().toString());
                        gyms.put("Place", gymPlace.getText().toString());
                        gyms.put("Adress", gymLocation.getText().toString());
                        gyms.put("Schedule", gymSchedule.getText().toString());
                        gyms.put("Description", gymDescription.getText().toString());

                        try {
                            myObject.put("Preço", gymClassPrice.getText().toString());
                            myObject.put("Aula", gymClass.getText().toString());
                            myObject.put("Horario", gymClassSchedule.getText().toString());
                        } catch (JSONException e1) {
                            e1.printStackTrace();
                        }
                        myArray.put(myObject);
                        gyms.put("Classes", myArray);
                        gyms.saveInBackground();

                    }
                }

Теперь я не знаю, какполучить эти значения.Может кто-нибудь помочь мне, пожалуйста?

Это мой фактический массив в файле json:

 "Classes": [
  {
    "Horario": "gababa",
    "Preço": "sgaffa",
    "Aula": "vsagav"
  },
  {
    "Horario": "gababa566",
    "Preço": "sgaffa566",
    "Aula": "vsagav345"
  }
],

Ответы [ 2 ]

0 голосов
/ 16 мая 2019

попробуйте этот код

сначала вам нужно извлечь классы массива json, затем перебрать jsonArray для получить JSONObject после получения JSONObject извлечь необходимые значения

try {
            JSONArray array = object.getJSONArray("Classes");
            for (int i = 0; i <array.length() ; i++) {

                try {
                    JSONObject jsonObject = array.getJSONObject(i);
                    // to get value of Horario

                    String Horario = jsonObject.getString("Horario");

                    // to get value of Preço

                    String Preço = jsonObject.getString("Preço");

                    // to get value of Aula

                    String Aula = jsonObject.getString("Aula");
                }catch (JSONException e){

                }

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

надеюсь, это поможет

0 голосов
/ 16 мая 2019

Вы можете создать эту 2 функцию для получения объекта json и массива json в Android

public JSONObject getJSONObject(String name) throws JSONException {
    Object object = get(name);
    if (object instanceof JSONObject) {
        return (JSONObject) object;
    } else {
        throw JSON.typeMismatch(name, object, "JSONObject");
    }
}

Во-вторых, получить массив JSON

public JSONArray getJSONArray(String name) throws JSONException {
    Object object = get(name);
    if (object instanceof JSONArray) {
        return (JSONArray) object;
    } else {
        throw JSON.typeMismatch(name, object, "JSONArray");
    }
}

Теперь вы можете получить доступ к этому,

try {
    JSONArray badgesJsonArray = dataJsonObject.getJSONArray("Classes");
    if (Utility.validateJsonArray(badgesJsonArray)) {
        for (int i = 0; i < badgesJsonArray.length(); i++) {
                try {
                  JSONObject badgesJsonObject = badgesJsonArray.getJSONObject(i);
                    }catch (Exception e) {
                    }
             }

} catch (Exception e) {
}
...