14
Фев
2020

Вытянуть данные из JSON (JSON, GSON, RETROFIT, JAVA)

Имею JSON:

{"response":{"count":30,"items":[{"id":31,"from_id":-116125443,"owner_id":-116125443,"date":1503404720,"marked_as_ads":0,"post_type":"post","text":"Еще одно подтверждение, как здорово заходят хиты даже через 15 лет. Немцы Reamonn в начале 2000-х сделали прорыв со своей меланхоличной \"Supergirl\". В 2017 году их успеть решили повторить Anna Nackab.","signer_id":276417933,"can_delete":1,"can_pin":1,"attachments":[{"type":"audio","audio":{"artist":"Программа \"Сэмпл один на Всех!\"","id":456241280,"owner_id":2000147926,"title":"Reamon vs. Anna Naclab","duration":25,"url":"https:\/\/vk.com\/mp3\/audio_api_unavailable.mp3","date":1503404721,"genre_id":1001}}],"post_source":{"type":"vk"},"comments":{"count":2,"can_post":1},"likes":{"count":5,"user_likes":1,"can_like":0,"can_publish":1},"reposts":{"count":1,"user_reposted":1}},{"id":30,"from_id":-116125443,"owner_id":-116125443,"date":1480571513,"marked_as_ads":0,"post_type":"post","text":"В 1991 году песня Марка Коэна \"Walking in Memphis\" появилась в эфирах радиостанций. За все время своего существования песня \"обросла\" каверами и ремиксами, использовалась в качестве саундтреков к фильмам. И по сей день припев песни является самым узнаваемым! Кстати, и по сей день это один из успешных синглов США и Великобритании.","can_delete":1,"can_pin":1,"attachments":[{"type":"audio","audio":{"artist":"Программа \"Сэмпл один на Всех!\"","id":456240538,"owner_id":2000129726,"title":"DJ Smash vs. Marc Cohn","duration":25,"url":"https:\/\/vk.com\/mp3\/audio_api_unavailable.mp3","date":1480571513,"genre_id":18}}],"post_source":{"type":"vk"},"comments":{"count":0,"can_post":1},"likes":{"count":5,"user_likes":1,"can_like":0,"can_publish":1},"reposts":{"count":1,"user_reposted":1}},{"id":29,"from_id":-116125443,"owner_id":-116125443,"date":1480338116,"marked_as_ads":0,"post_type":"post","text":"В 2000-х хит от группы \"Руки Вверх\" \"Песенка №5\" зазвучала на европейских танцполах в англоязычном варианте. Вот это, действительно оказалось приятным. Русскоязычная песня стала основой для многих кавер-версий и ремиксов от Атлантики до Тихого океана! Как это произошло - в нашей программе!","can_delete":1,"can_pin":1,"attachments":[{"type":"audio","audio":{"artist":"Программа \"Сэмпл один на Всех!\"","id":456240399,"owner_id":2000124826,"title":"Руки Вверх vs. ATC","duration":25,"url":"","date":1480338116,"genre_id":18,"no_search":1,"content_restricted":1}}],"post_source":{"type":"vk"},"comments":{"count":0,"can_post":1},"likes":{"count":7,"user_likes":1,"can_like":0,"can_publish":1},"reposts":{"count":1,"user_reposted":1}},{"id":28,"from_id":-116125443,"owner_id":-116125443,"date":1480337719,"marked_as_ads":0,"post_type":"post","text":"Музыка преображает человека. Напевая любимый мотив, Вы преображаете все вокруг. А припев современной песни так и просится запомнится... А если мотив песни Вы можете вспомнить через несколько лет, то главная задача автора решена - Вы стали его поклонником 😊. Как изменялась одна популярная песня на протяжении нескольких лет. Добро пожаловать в мир программы.","can_delete":1,"can_pin":1,"attachments":[{"type":"audio","audio":{"artist":"Программа \"Сэмпл один на Всех!\"","id":456240300,"owner_id":2000124943,"title":"Frida Gold vs. Gala","duration":25,"url":"https:\/\/vk.com\/mp3\/audio_api_unavailable.mp3","date":1480337719,"genre_id":18}}],"post_source":{"type":"vk"},"comments":{"count":0,"can_post":1},"likes":{"count":4,"user_likes":1,"can_like":0,"can_publish":1},"reposts":{"count":1,"user_reposted":1}},{"id":27,"from_id":-116125443,"owner_id":-116125443,"date":1467535791,"marked_as_ads":0,"post_type":"post","text":"Этой истории уже более 10-ти лет. Для современной музыкальной истории не такой большой срок, но тем не менее, изменения очевидны.  DJ David Guetta еще раз подтвердил свое умение делать хорошие хиты, пусть и на старом материале. Об этом в нашей программе.","can_delete":1,"can_pin":1,"attachments":[{"type":"audio","audio":{"artist":"Программа \"Сэмпл Один на Всех!\"","id":456239491,"owner_id":2000338373,"title":"David Guetta vs. Alice Deejay","duration":25,"url":"https:\/\/vk.com\/mp3\/audio_api_unavailable.mp3","date":1467535791,"genre_id":18}}],"post_source":{"type":"vk"},"comments":{"count":0,"can_post":1},"likes":{"count":6,"user_likes":1,"can_like":0,"can_publish":1},"reposts":{"count":1,"user_reposted":1}}]}}

Вытягиваю его через запрос в строку:

private void getresponse() throws IOException {
        Retrofit retrofit = NetworkClient.getRetrofitClient();
        WallInterface wallInterface = retrofit.create(WallInterface.class);
        Call<String> call = wallInterface.getresponse("-116125443", "0", "5", "5.52", "token");
        call.enqueue(new Callback<String>() {
            @Override
            public void onResponse(Call<String> call, Response<String> response) {
                if (response.isSuccessful()){
                    if (response.body() !=null){
                        System.out.println("onSuccess - " +response.body().toString());
                        String jsonresponse = response.body().toString();
                        System.out.println("onSuccessJsonResponse - " + jsonresponse);
                        textView.setText(jsonresponse);


                    } else {
                        System.out.println("not Success");
                    }
                }
            }

            @Override
            public void onFailure(Call<String> call, Throwable t) {

            }
        });
    }

    public void OnClick(View view) throws IOException {
        getresponse();

    }

Весь респонс по нажатию кнопки отображается в TextView, в консоли пишется. А теперь вопрос: как достать из каждого Item значение поля "text"? Классы через jsonschema2pojo.org делал, таким методом не вышло. Как это сделать?

Share

Тебе может это понравится...