Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
 Аватар для mozg-bolit
4 / 4 / 5
Регистрация: 20.09.2014
Сообщений: 307

Не получается разобрать JSON

05.06.2018, 19:06. Показов 1394. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста, не получается разобрать сообщения

JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
 
"response":
 
{"count":61,"unread_dialogs":2,
 
"items":[
 
{"unread":2,"message":{"id":586945,"date":1528211563,"out":0,"user_id":1074,"read_state":0,"title":"","body":"Привет"},"in_read":581197,"out_read":586945},
{"unread":3,"message":{"id":586943,"date":1528209686,"out":0,"user_id":15251,"read_state":0,"title":"ЛАЙКИ","body":"https:\/\/vk.com\/coach_almadi?w=wall163151_2265%2Fall","chat_id":63,"chat_active":[31300,152151],"push_settings":{"sound":0,"disabled_until":-1},"users_count":65,"admin_id":67948,"photo_50":"https:\/\/pp.userapi.com\/c841432\/v841432223\/377ac\/-eZONsa0s.jpg?ava=1","photo_100":"https:\/\/pp.userapi.com\/c841432\/v841432223\/377ab\/tXM2ep_E8.jpg?ava=1","photo_200":"https:\/\/pp.userapi.com\/c841432\/v841432223\/377aa\/AehJKsYQ.jpg?ava=1"},"in_read":586940,"out_read":586943},
 
{"message":{"id":586936,"date":1528194478,"out":0,"user_id":29548,"read_state":1,"title":"NETWORKING","body":"Ребята, всем привет!","emoji":1,"chat_id":69,"chat_active":[78772,1540902,201330,10630],"push_settings":{"sound":0,"disabled_until":-1},"users_count":173,"admin_id":36489,"photo_50":"https:\/\/pp.userapi.com\/c824602\/v824602871\/b012c\/RD59v1U.jpg?ava=1","photo_100":"https:\/\/pp.userapi.com\/c824602\/v824602871\/b012b\/INLP6JO8.jpg?ava=1","photo_200":"https:\/\/pp.userapi.com\/c824602\/v824602871\/b0129\/Kfz0v4P-0.jpg?ava=1"},"in_read":586936,"out_read":586936},
 
]}}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 JsonParser parser = new JsonParser();
                JsonObject mObject = parser.parse(result).getAsJsonObject();
                JsonArray pItem = mObject.getAsJsonObject("response").getAsJsonArray("items");
                for (JsonElement user : pItem) {
                    JsonObject Obj = user.getAsJsonObject();
                    JsonArray prim = Obj.getAsJsonArray("message");
                    for (JsonElement users : prim) {
                        JsonObject Objs = users.getAsJsonObject();
                        String img_url = Objs.get("img_url").getAsString();
                        Log.d("parser", "  " + img_url);
                        String name = Objs.get("title").getAsString();
                        Log.d("parser", "  " + name);
                        String id = Objs.get("user_id").getAsString();
                        Log.d("parser", "  " + id);
                        String time = Objs.get("date").getAsString();
                        Log.d("parser", "  " + time);
                        String messs = Objs.get("body").getAsString();
                        Log.d("parser", "  " + messs);
                        dialogs.add(new DialogsGet(id, name, img_url, time, messs));
                    }
 
                }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.06.2018, 19:06
Ответы с готовыми решениями:

Не получается получить json
Пытаюсь получить json строку с http://217.12.194.171:31/server/api/users/getusers Использую для примера...

Flask и SQLAlchemy и JSON. Не получается преобразовать результат запроса в json
У меня есть БД построенная из этих моделей с помощью миграций: # Class Class stores info about dish categories class...

Разобрать JSON
В ответ от сайта приходит вот такой текс в формате JSON. Дело в том, что я ужастно разбираюсь в библиотеках с JSON и никогда у меня...

5
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
05.06.2018, 19:13
message не JsonArray , а JsonObject
1
 Аватар для mozg-bolit
4 / 4 / 5
Регистрация: 20.09.2014
Сообщений: 307
06.06.2018, 01:20  [ТС]
получилось
Java
1
2
3
4
5
6
7
8
9
JsonParser parser = new JsonParser();
                JsonObject mObject = parser.parse(result).getAsJsonObject();
                JsonArray pItem = mObject.getAsJsonObject("response").getAsJsonArray("items");
                for (JsonElement user : pItem) {
if(exit==1){break;}
                        JsonObject audioObj = user.getAsJsonObject();
                        JsonObject audioObjs = audioObj.getAsJsonObject("message");         
                        String str = String.valueOf(audioObjs);
                        String idd = String.valueOf(audioObjs.get("user_id").getAsInt());
Подскажите пожалуйста как остановить данный цикл for (JsonElement user : pItem) пробовал if(exit==1){break;} не помогает

Добавлено через 7 минут
конечно System.exit(0); не плохой вариант, но static данные в некоторых классах пропадут. так что я больше не знаю как
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
06.06.2018, 09:46
Зачем его останавливать? Зачем его запускать, если нужно остановить? В любом случае break рабочий способ, если правильно написать условие.
0
 Аватар для mozg-bolit
4 / 4 / 5
Регистрация: 20.09.2014
Сообщений: 307
07.06.2018, 23:40  [ТС]
я простыми я более менее понял как а вот если делать вложенный массив я не понимаю
выдает
java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.Iterator com.google.gson.JsonArray.iterator()' on a null object reference

JSON
1
2
3
4
5
6
7
8
9
{
"response":
{"count":698,"unread":1,
"items":[
{"id":5363,"body":"","user_id":32446,"from_id":32446,"date":1528375639,"read_state":0,"out":0,
"attachments":[{"type":"sticker","sticker":{"id":5020,"product_id":159,"photo_64":"https:\/\/vk.com\/images\/stickers\/5020\/64b.png",
"photo_128":"https:\/\/vk.com\/images\/stickers\/5020\/128b.png","photo_256":"https:\/\/vk.com\/images\/stickers\/5020\/256b.png",
"photo_352":"https:\/\/vk.com\/images\/stickers\/5020\/352b.png","photo_512":"https:\/\/vk.com\/images\/stickers\/5020\/512b.png",
"width":256,"height":256}}]},
не получается выбрать attachments
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
   JsonParser parser = new JsonParser();
            JsonObject mObject = parser.parse(result).getAsJsonObject();
            JsonArray pItem = mObject.getAsJsonObject("response").getAsJsonArray("items");
            for (JsonElement user : pItem) {
                String type="";
                String photo_256="";
                String duration="";
                String url="";
                    JsonObject audioObj = user.getAsJsonObject();
                String user_id=String.valueOf(audioObj.get("user_id").getAsInt());
                String from_id=String.valueOf(audioObj.get("from_id").getAsInt());
                String time=String.valueOf(audioObj.get("date").getAsInt());
                String read_state=String.valueOf(audioObj.get("read_state").getAsInt());
                String out=String.valueOf(audioObj.get("out").getAsInt());
                String mes=audioObj.get("body").getAsString();
                if(result.contains("attachments")) {
                    JsonObject mObj = parser.parse(String.valueOf(audioObj)).getAsJsonObject();
                    JsonArray pItemx = mObj.getAsJsonArray("attachments");
                    for (JsonElement userx : pItemx) {
                        JsonObject Obj = userx.getAsJsonObject();
                        type = Obj.get("type").getAsString();
                        if(type.equals("sticker")) {
                            JSONObject obj = null;
                            try {
                                obj = new JSONObject(String.valueOf(Obj));
                            photo_256 = obj.getJSONObject("sticker").getString("photo_256");
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                        }
                        }
                }
 
            }
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
08.06.2018, 10:57
Java
1
pItemx  = audioObj.getAsJsonObject()
вместо
Java
1
2
JsonObject mObj = parser.parse(String.valueOf(audioObj)).getAsJsonObject();
                    JsonArray pItemx = mObj.getAsJsonArray("attachments");
Имена переменных ужасны, разобраться, что тут происходит очень сложно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.06.2018, 10:57
Помогаю со студенческими работами здесь

Разобрать json
Здравствуйте подскажите как разобрать такой json...

Разобрать json
Всем привет! Приходит ответ в таком виде: { "831" : { "value" : "123", "label" : "text" }} Делаю: data = $.parseJSON('{...

Разобрать Json
Добрый день. В принципе задача элементарная, если бы не одно но, а именно То есть начинается с квадратной скобки, и когда я...

Как разобрать JSON
Доброго времени суток, есть JSON ответ, необходимо получить значение ключа "duration". Попытки перебора object и array были без...

Как разобрать JSON?
есть класс class Person(models.Model): Id = models.IntegerField('Id', primary_key=True) name = models.CharField('name',...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru