Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Нужна помощь с парсингом JSON

Ответить
Настройки темы
C/C++ - Нужна помощь с парсингом JSON

Аватара для Apock

Пользователь


Сообщения: 72
Благодарности: 3

Профиль | Отправить PM | Цитировать


С++ Builder 10.2
Пытаюсь освоить парсинг JSON, но что-то отсутствие толковой документации завелов тупик.
Есть такой ответ от сервера:
Цитата:
{
"timezone": "UTC",
"serverTime": 1508631584636,
"rateLimits": [
// These are defined in the `ENUM definitions` section under `Rate limiters (rateLimitType)`.
// All limits are optional.
],
"exchangeFilters": [
// There are defined in the `Filters` section.
// All filters are optional.
],
"symbols": [{
"symbol": "ETHBTC",
"status": "TRADING",
"baseAsset": "ETH",
"baseAssetPrecision": 8,
"quoteAsset": "BTC",
"quotePrecision": 8,
"orderTypes": [
// These are defined in the `ENUM definitions` section under `Order types (orderTypes)`.
// All orderTypes are optional.
],
"icebergAllowed": false,
"filters": [
// There are defined in the `Filters` section.
// All filters are optional.
]
}]
}
и вот такой код:
Код: Выделить весь код
TJSONObject *o = (TJSONObject*) TJSONObject::ParseJSONValue(TEncoding::ASCII->GetBytes(Memo1->Lines->Text),0);
  __try {
	TJSONArray *a = (TJSONArray*) o->Get("symbols")->JsonValue;
	for (int idx = 0; idx < a->Size(); idx++) {
	  TJSONObject *symbol = (TJSONObject*) a->Get(idx);
	  for (int idy = 0; idy < symbol->Count; idy++) {
		ShowMessage( symbol->Pairs[idy]->JsonString->ToString() + ':' +
					 symbol->Pairs[idy]->JsonValue->ToString() );
	  }
	}

  }
  __finally {
	o->Free();
  }
На третьей строке при попытке получить массив "symbols" вылетает ошибка Access Violation.
Если убрать всё остальное, к примеру так:
Цитата:
{
"symbols": [{
"symbol": "ETHBTC",
"status": "TRADING",
"baseAsset": "ETH",
"baseAssetPrecision": 8,
"quoteAsset": "BTC",
"quotePrecision": 8
}]
}
то всё проходит гладко и проблем не возникает.
Не могу понять как решить эту проблему.

-------
Говорят, что производители чипсетов не стоят на месте. Чушь. Как стоял завод корпорации 3dfx на перекрёстке 7-й авеню и 6-й дежавю, так и стоит.


Отправлено: 02:38, 28-03-2019

 

Ветеран


Сообщения: 2969
Благодарности: 621

Профиль | Отправить PM | Цитировать


Цитата Apock:
Есть такой ответ от сервера: »
это не JSON ;-)
в JSON нет комментариев

Отправлено: 10:57, 28-03-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для Apock

Пользователь


Сообщения: 72
Благодарности: 3

Профиль | Отправить PM | Цитировать


Это пример ответа из документации сайта. Стирал эти комменты, не помогает.
Цитата:
{
"timezone": "UTC",
"serverTime": 1508631584636,
"symbols": [{
"symbol": "ETHBTC",
"status": "TRADING",
"baseAsset": "ETH",
"baseAssetPrecision": 8,
"quoteAsset": "BTC",
"quotePrecision": 8,
"icebergAllowed": false,
}]
}
Я не могу понять систему доступа JSON. Есть корневой объект, есть массив с именем, по которому я к нему обращаюсь. Почему наличие строк перед массивом мешает? И попытка получить доступ к одной из этих строк тоже заканчивается ошибкой.

-------
Говорят, что производители чипсетов не стоят на месте. Чушь. Как стоял завод корпорации 3dfx на перекрёстке 7-й авеню и 6-й дежавю, так и стоит.


Отправлено: 11:22, 28-03-2019 | #3


Ветеран


Contributor


Сообщения: 24401
Благодарности: 7086

Профиль | Отправить PM | Цитировать


Busla, видимо, это расширение JSON5. И под него, надо полагать, нужен свой парсер.

Отправлено: 11:35, 28-03-2019 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Нужна помощь с парсингом JSON

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - JSON: settings.json в Visual Studio Code прокси jkadaba Скриптовые языки администрирования Windows 0 14-04-2017 08:10
C/C++ - Нужна помощь Nika_Milashka Программирование и базы данных 3 30-05-2015 13:50
VBS/WSH/JS - [решено] Помогите с парсингом лога. shurepsky Скриптовые языки администрирования Windows 1 10-10-2014 10:30
BSOD - нужна помощь.. sigrok Устранение критических ошибок Windows 1 23-04-2011 23:23
Нужна помощь Vovan27 Лечение систем от вредоносных программ 1 10-01-2009 22:03




 
Переход