Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Vasiliy ASD
2 / 2 / 0
Регистрация: 11.01.2015
Сообщений: 16
#1

Парсинг JSON

10.06.2015, 23:17. Просмотров 646. Ответов 4
Метки нет (Все метки)

Всем доброго времени суток
Не могу распарсить json...

Сам json
Кликните здесь для просмотра всего текста


["\u0432\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435",["\u0412\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u0435"],["\u00ab\u0412\u041a\u043e\u043d\u0442\u0430\u0301\u043a\u0442\u0435\u00bb (vk.com) \u2014 \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0435\u0442\u044c \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0449\u0430\u044f Mail.Ru Group. \u041f\u043e \u0434\u0430\u043d\u043d\u044b\u043c SimilarWeb, \u00ab\u0412\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u0435\u00bb \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u043c \u043f\u043e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u0438 \u0441\u0430\u0439\u0442\u043e\u043c \u0432 \u0420\u043e\u0441\u0441\u0438\u0438 \u0438 \u043d\u0430 \u0423\u043a\u0440\u0430\u0438\u043d\u0435, 6-\u043c \u2014 \u0432 \u043c\u0438\u0440\u0435."],["https://ru.wikipedia.org/wiki/%D0%92%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D0%B5"]]



Как делаю я
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
WIKI = IdHTTP1->URL>URLEncode("https://ru.wikipedia.org/w/api.phpaction=opensearch&search="+MSGGET+"&prop=info&format=json");
WIKI = IdHTTP1->Get(WIKI);
Memo2->Clear();
 
jObj1 = static_cast<TJSONObject*>(TJSONObject::ParseJSONValue(WIKI));
jArr1 = static_cast<TJSONArray*>(jObj1->Get("2")->JsonValue);
 
        for (int i = 0; i < 3; i++)
            {
            jItem1 = static_cast<TJSONObject*>(jArr1->Get(i));
                if (jItem1!=NULL)
                    {
                    WIKI = jItem1->Value();
                    Memo2->Lines->Add(WIKI);
                    Memo2->Lines->Add(" ");
                    }
            }


Добавлено через 5 минут
Нужно получить
Кликните здесь для просмотра всего текста
"«ВКонта́кте» (vk.com) — социальная сеть принадлежащая Mail.Ru Group. По данным SimilarWeb, «ВКонтакте» является первым по популярности сайтом в России и на Украине, 6-м — в мире."


Добавлено через 2 минуты
Самая соль в том, что этот код работал адекватно еще пару дней назад и кажется википедия не меняла формат json. Кажется...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2015, 23:17
Ответы с готовыми решениями:

Парсинг JSON в XE4
Дан такой ответ в виде JSON...

json parser
Поступила задачка научить программу понимать ответы сервера в формате JSON....

Разбор json
Есть json объект который может быть получен в программе { &quot;status&quot;:...

Парсинг
Тема зажована уже тут, но есть 1 для меня непонятный момент :) как можно...

Разобрать ответ JSON
Приветствую ребята. Подскажите пожалуйста, есть ли какая функция/компонента для...

4
Рыжий Лис
Просто Лис
1185 / 510 / 343
Регистрация: 17.05.2012
Сообщений: 2,062
Записей в блоге: 8
11.06.2015, 07:50 #2
Цитата Сообщение от Vasiliy ASD Посмотреть сообщение
C++
1
WIKI = IdHTTP1->URL>URLEncode("https://ru.wikipedia.org/w/api.phpaction=opensearch&search="+MSGGET+"&prop=info&format=json");
https://ru.wikipedia.org/w/api.php?action=opensearch&search="+MSGGET+"&prop=info&format=json
0
Vasiliy ASD
2 / 2 / 0
Регистрация: 11.01.2015
Сообщений: 16
12.06.2015, 02:05  [ТС] #3
Не то...

C++
1
jArr1 = static_cast<TJSONArray*>(jObj1->Get("2")->JsonValue);
где - то тут косяк
0
-JR-
4 / 4 / 2
Регистрация: 22.04.2015
Сообщений: 54
Завершенные тесты: 1
12.06.2015, 08:10 #4
Самая соль в том, что этот код работал адекватно еще пару дней назад и кажется википедия не меняла формат json. Кажется...
Википедия встроила код для сбора пожертвований, возможно это создало изменения в алгоритме.
0
Vasiliy ASD
2 / 2 / 0
Регистрация: 11.01.2015
Сообщений: 16
12.06.2015, 18:12  [ТС] #5
Врятли...
https://ru.wikipedia.org/w/api.php?a...fo&format=json

возвращает мне
JSON
1
["\u0412\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435",["\u0412\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u0435"],["\u00ab\u0412\u041a\u043e\u043d\u0442\u0430\u0301\u043a\u0442\u0435\u00bb (vk.com) \u2014 \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0435\u0442\u044c \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0449\u0430\u044f Mail.Ru Group. \u041f\u043e \u0434\u0430\u043d\u043d\u044b\u043c SimilarWeb, \u00ab\u0412\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u0435\u00bb \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u043c \u043f\u043e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u0438 \u0441\u0430\u0439\u0442\u043e\u043c \u0432 \u0420\u043e\u0441\u0441\u0438\u0438 \u0438 \u043d\u0430 \u0423\u043a\u0440\u0430\u0438\u043d\u0435, 6-\u043c \u2014 \u0432 \u043c\u0438\u0440\u0435."],["https://ru.wikipedia.org/wiki/%D0%92%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D0%B5"]]
думаю, что я просто допустил ошибку при парсинге json
0
12.06.2015, 18:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.06.2015, 18:12

SAX json парсер
Вечер добрый. Есть задача реализовать SAX-парсер JSON-a (парсинг не во...

С++Builder XE2 + JSON
Принимаю json пакеты, до этого хитрил с регулярками или писал простенькие...

Подключение DBXJSON и json
Есть проблема с json-ом на билдере. На #include &lt;DBXJSON.hpp&gt; выдает...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru