Как добавить json в Arraylist?

Всем привет, я новичок в этой области. Я сделал запрос на отдых для проекта и получил такой ответ:

{"success":true,"timestamp":1524649444,"base":"EUR","date":"2018-04-25","rates":{"AED":4.486623,"AFN":85.583411,"ALL":128.283655,"AMD":585.986726,"ANG":2.175126,"AOA":270.568194,"ARS":24.745299,"AUD":1.609775,"AWG":2.1 // and so on.

как я могу вставить валюту и его стоимость в arraylist?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_fixer_request);
    System.out.println("-->rest");

    String url = "http://data.fixer.io/api/latest?access_key=7e4976fbeb5d633e337487fea31fd7ca";
    RequestQueue requestQueue= Volley.newRequestQueue(this);

    JsonObjectRequest objectRequest= new JsonObjectRequest(
            Request.Method.GET,
            url,
            null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    Log.e("rest Response",response.toString());
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Log.e("rest Response",error.toString());
                }
            }
    );

    requestQueue.add(objectRequest);
}

пожалуйста, проведите небольшое исследование, прежде чем размещать свой запрос. это очень простая вещь. здесь ссылаться - aideafactory.com/…. если у вас возникнут проблемы после этого, вы можете спросить.

Sagar Nayak 25.04.2018 12:44
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
1
141
5

Ответы 5

Используйте библиотеку Gson для простого преобразования объекта json в объект Java google-gson

Создайте JSONObject:

JSONObject jObject = new JSONObject(result);

Чтобы получить конкретную строку

String aJsonString = jObject.getString("STRINGNAME");

Чтобы получить конкретное логическое значение

boolean aJsonBoolean = jObject.getBoolean("BOOLEANNAME");

Чтобы получить конкретное целое число

int aJsonInteger = jObject.getInt("INTEGERNAME");

Чтобы получить конкретную длинную

long aJsonLong = jObject.getBoolean("LONGNAME");

Чтобы получить конкретный дубль

double aJsonDouble = jObject.getDouble("DOUBLENAME");

Чтобы получить конкретный массив JSONArray:

JSONArray jArray = jObject.getJSONArray("ARRAYNAME");

Чтобы получить элементы из массива

for (int i=0; i < jArray.length(); i++)
{
    try {
        JSONObject oneObject = jArray.getJSONObject(i);
        // Pulling items from the array
        String oneObjectsItem = oneObject.getString("STRINGNAMEinTHEarray");
        String oneObjectsItem2 = oneObject.getString("anotherSTRINGNAMEINtheARRAY");
    } catch (JSONException e) {
        // Oops
    }
}

вы можете из http://www.jsonschema2pojo.org/ преобразовать json в базу аннотаций класса java - это чистый код

и вы можете использовать из библиотеки модифицированную базу Gson, легко

или используйте:

JSONArray jArray2 = jArray.getJSONArray("PreFactorHotels");

            for (int i = 0; i < jArray2.length(); i++) {
                hotelPreFactorModels.add(new HotelPreFactorModel(jArray2.getJSONObject(i).getString("HotelNameE"),
                        Utility.dateShow(jArray2.getJSONObject(i).getString("HotelChekin"))
                        , Utility.dateShow(jArray2.getJSONObject(i).getString("HotelChekout")),
                        jArray2.getJSONObject(i).getString("AdlCount"),
                        jArray2.getJSONObject(i).getString("ChdCount"),jArray2.getJSONObject(i).getString("RoomTitleFa")));

            }

ИСПОЛЬЗОВАНИЕ библиотеки GSON это требует трех шагов

String afikJson  = "YOUR JSON...";
 Gson gson = new Gson();//create Gson object
//and create Type object with arrayList as a type of data
Type afikListType = new TypeToken<ArrayList<Afik>>(){}.getType();

//map your JSON
List<Afik> afikList = gson.fromJson(afikJson, afikListType); 

Вы должны изменить свой ответ JSON следующим образом:

{"success":true,"timestamp":1524649444,"base":"EUR","date":"2018-04-25","rates":[{"currency_name":"AED","currency_value":"4.486623"},{"currency_name":"AFN","currency_value":"85.583411"},{"currency_name":"ALL","currency_value":"128.283655"},{"currency_name":"AMD","currency_value":"585.986726"}]}

В вашем JSON нет массива, из которого вы можете добавить значение в список массивов.

Если вы не можете изменить свой ответ JSON, вам необходимо предварительно объявить все типы валюты в своем списке массивов, а затем соответственно добавить туда валюту.

Другие вопросы по теме