Hashmap выдает 0 размер

200
18 апреля 2017, 07:44

Первая мапа выдает размер 3, все ок. Но та, которая заполняется из бд, всегда имеет размер 0, повторяющихся ключей и значений нет. Данные из самой бд парсятся нормально.

    hashmap.put(1,"1");
    hashmap.put(2,"2");
    hashmap.put(3,"3");
    hashmap.size();
    requestQueue= Volley.newRequestQueue(this);
    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, url,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try{
                    JSONArray jsonArray = response.getJSONArray("JUDGES");
                        for (int i=0;i>jsonArray.length();i++){
                            JSONObject judges = jsonArray.getJSONObject(i);
                            String name = judges.getString("J_NAME");
                            int jid = judges.getInt("ID");
                            hmjudges.put(jid,name);
                            hmjudges.size();
                        }
                }catch (JSONException e){e.printStackTrace();}
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
        }
    });
    requestQueue.add(jsonObjectRequest);

UPD С ArrayList все работает.

hashmap.put(1,"1");
    hashmap.put(2,"2");
    hashmap.put(3,"3");
    hashmap.size();
    final List<String> names = new ArrayList<String>();
    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, "http://full-version.ru/select_judge/judges.php",
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try{
                    JSONArray jsonArray = response.getJSONArray("JUDGES");
                        for (int i=0;i<jsonArray.length();i++){
                            JSONObject judges = jsonArray.getJSONObject(i);
                            String name = judges.getString("J_NAME");
                            int jid = judges.getInt("ID");
                            names.add(name);
                            hmjudges.put(jid,name);
                            hmjudges.size();
                        }
                }catch (JSONException e){e.printStackTrace();}
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
        }
    });
    requestQueue= Volley.newRequestQueue(this);
    requestQueue.add(jsonObjectRequest);
Answer 1

Автор опечатался в цикле:

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

Правильно будет:

for (int i = 0; i < jsonArray.length(); i++) {
READ ALSO
Заполнить массив типа ContentProviderOperation

Заполнить массив типа ContentProviderOperation

Здравствуйте, появилась проблемаДелаю телефонную книжку, конкретно - изменение контакта (при тапе на контакт в списке открывается новая...

182
BottomNavigationView, переключение между activity

BottomNavigationView, переключение между activity

Здравствуйте Я только начинающий и прошу не судить строго и помочьПроблема состоит в том, что я имею 5 кнопок на BottomNavigationBar и вопрос в том,...

293
Как правильно получить массив байт по TCP/IP?

Как правильно получить массив байт по TCP/IP?

Есть сервер, который по команде присылает некоторое количество байтОбъём данных заранее известен - 280 Кбайт

221
Парсинг json в java

Парсинг json в java

Хочу сделать так, чтобы i-тому элементу hostidList соответствовал i-тый host (тип ArrayList)Но проблема в том, что не могу корректно то ли ввести, то ли вывести...

313