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

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

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

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

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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
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...

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

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

5
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
05.06.2018, 19:13 2
message не JsonArray , а JsonObject
1
4 / 4 / 5
Регистрация: 20.09.2014
Сообщений: 307
06.06.2018, 01:20  [ТС] 3
получилось
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 4
Зачем его останавливать? Зачем его запускать, если нужно остановить? В любом случае break рабочий способ, если правильно написать условие.
0
4 / 4 / 5
Регистрация: 20.09.2014
Сообщений: 307
07.06.2018, 23:40  [ТС] 5
я простыми я более менее понял как а вот если делать вложенный массив я не понимаю
выдает
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 6
Java
1
pItemx  = audioObj.getAsJsonObject()
вместо
Java
1
2
JsonObject mObj = parser.parse(String.valueOf(audioObj)).getAsJsonObject();
                    JsonArray pItemx = mObj.getAsJsonArray("attachments");
Имена переменных ужасны, разобраться, что тут происходит очень сложно.
0
08.06.2018, 10:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2018, 10:57
Помогаю со студенческими работами здесь

Разобрать json
Всем привет! Приходит ответ в таком виде: { "831" : { "value" : "123", "label" : "text" }} ...

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru