powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Разобрать JSON ответ
13 сообщений из 13, страница 1 из 1
Разобрать JSON ответ
    #39719072
VladimirVVP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
{"databases":[{"id"              : "aOWO_dVXHdHie1WeGFE8k2"
 "name"            : "Database Name 1",
 "created_at"      : "2011-08-16T05:42:40-05:00",
 "updated_at"      : "2011-08-16T05:42:40-05:00",
 "dtypes_count"    : 0,
 "entities_count"  : 1,
 "properties_count": 0
 },
{"id"              : "aOWO3eVXHdHie1WeGFE8k2"
 "name"            : "Database Name 2",
 "created_at"      : "2011-04-29T01:26:22-05:00",
 "updated_at"      : "2011-08-16T00:47:56-05:00",
 "dtypes_count"    : 768,
 "entities_count"  : 6,
 "properties_count": 240
} ]}



помогите разобрать этот json ответ...
покажите наглядно как это сделать..
...
Рейтинг: 0 / 0
Разобрать JSON ответ
    #39719076
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladimirVVP,

Версия Delphi какая?
...
Рейтинг: 0 / 0
Разобрать JSON ответ
    #39719086
VladimirVVP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_VladimirVVP,

Версия Delphi какая?

10, мне нужно , так сказать (стандартыми средствами)..
...
Рейтинг: 0 / 0
Разобрать JSON ответ
    #39719090
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
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.
var
  vJSONBytes: TBytes;
  vJSONScenario: TJSONValue;
  vJSONArray: TJSONArray;
  vJSONValue: TJSONValue;
  vJSONObject: TJSONObject;
  vJSONPair: TJSONPair;
  vJSONScenarioEntry: TJSONValue;
  vJSONScenarioValue: TJSONString;
begin
  vJSONBytes := TFile.ReadAllBytes(aFileName);

  vJSONScenario := TJSONObject.ParseJSONValue(vJSONBytes, 0);
  if vJSONScenario <> nil then
  try
    //BetFair Specific 'caption' key
    vJSONArray := vJSONScenario as TJSONArray;
    for vJSONValue in vJSONArray do
    begin
      vJSONObject := vJSONValue as TJSONObject;
      vJSONPair := vJSONObject.Get('caption');
      vJSONScenarioEntry := vJSONPair.JsonValue;
      vJSONScenarioValue := vJSONScenarioEntry as TJSONString;
      cbScenario.Items.Add(vJSONScenarioValue.Value);
    end;
  finally
    vJSONScenario.Free;
  end;
...
Рейтинг: 0 / 0
Разобрать JSON ответ
    #39719103
Фотография krapotkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стандартные конечно хорошо, но XSuperObject 2 файла 150Кб
и гораздо удобнее
...
Рейтинг: 0 / 0
Разобрать JSON ответ
    #39719122
VladimirVVP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X-Cite
Код: pascal
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.
var
  vJSONBytes: TBytes;
  vJSONScenario: TJSONValue;
  vJSONArray: TJSONArray;
  vJSONValue: TJSONValue;
  vJSONObject: TJSONObject;
  vJSONPair: TJSONPair;
  vJSONScenarioEntry: TJSONValue;
  vJSONScenarioValue: TJSONString;
begin
  vJSONBytes := TFile.ReadAllBytes(aFileName);

  vJSONScenario := TJSONObject.ParseJSONValue(vJSONBytes, 0);
  if vJSONScenario <> nil then
  try
    //BetFair Specific 'caption' key
    vJSONArray := vJSONScenario as TJSONArray;
    for vJSONValue in vJSONArray do
    begin
      vJSONObject := vJSONValue as TJSONObject;
      vJSONPair := vJSONObject.Get('caption');
      vJSONScenarioEntry := vJSONPair.JsonValue;
      vJSONScenarioValue := vJSONScenarioEntry as TJSONString;
      cbScenario.Items.Add(vJSONScenarioValue.Value);
    end;
  finally
    vJSONScenario.Free;
  end;



Вот теперь я еще сильнее запутался))

и как мне тут получить к примеру "name" : "Database Name 1" и поместить это ( Database Name 1: string) в пременную?
...
Рейтинг: 0 / 0
Разобрать JSON ответ
    #39719123
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladimirVVP,

Методом тыка.
Классы есть, help + intellisense в помощь
...
Рейтинг: 0 / 0
Разобрать JSON ответ
    #39719126
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
незнакомый json разбирается в любом онлайн просмоторщике типа этого:
https://jsoneditoronline.org/

А уже из структуры можно писать и свой код.
...
Рейтинг: 0 / 0
Разобрать JSON ответ
    #39719131
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
JaDiнезнакомый json разбирается в любом онлайн просмоторщике типа этого:
https://jsoneditoronline.org/

А уже из структуры можно писать и свой код.
пример ТС из первого сообщения выдаёт ошибки и не парсится
...
Рейтинг: 0 / 0
Разобрать JSON ответ
    #39719132
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorпример ТС из первого сообщения выдаёт ошибки и не парсится
Потому что этот пример битый.

Там запятых не хватает.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
{"databases":[
 {
   "id"              : "aOWO_dVXHdHie1WeGFE8k2",
   "name"            : "Database Name 1",
   "created_at"      : "2011-08-16T05:42:40-05:00",
   "updated_at"      : "2011-08-16T05:42:40-05:00",
   "dtypes_count"    : 0,
   "entities_count"  : 1,
   "properties_count": 0
 },
 {
   "id"              : "aOWO3eVXHdHie1WeGFE8k2",
   "name"            : "Database Name 2",
   "created_at"      : "2011-04-29T01:26:22-05:00",
   "updated_at"      : "2011-08-16T00:47:56-05:00",
   "dtypes_count"    : 768,
   "entities_count"  : 6,
   "properties_count": 240
  }
...
Рейтинг: 0 / 0
Разобрать JSON ответ
    #39719133
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
{"databases":[
 {
   "id"              : "aOWO_dVXHdHie1WeGFE8k2",
   "name"            : "Database Name 1",
   "created_at"      : "2011-08-16T05:42:40-05:00",
   "updated_at"      : "2011-08-16T05:42:40-05:00",
   "dtypes_count"    : 0,
   "entities_count"  : 1,
   "properties_count": 0
 },
 {
   "id"              : "aOWO3eVXHdHie1WeGFE8k2",
   "name"            : "Database Name 2",
   "created_at"      : "2011-04-29T01:26:22-05:00",
   "updated_at"      : "2011-08-16T00:47:56-05:00",
   "dtypes_count"    : 768,
   "entities_count"  : 6,
   "properties_count": 240
  }
]}
...
Рейтинг: 0 / 0
Разобрать JSON ответ
    #39719139
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если делфи не совсем старье, то рекомендую библиотеку JsonDataObjects . Очень простая в использовании, не требует установки. Получение и автосоздание объектов и значений прямо налету (причем в нативных значениях типа integer, datetime, string, array, object).

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
uses
  JsonDataObjects;

procedure TForm13.FormCreate(Sender: TObject);
var
  obj: TJsonObject;
begin
  obj := TJsonObject.Parse('{"databases":[{"id":"aOWO_dVXHdHie1WeGFE8k2","name":"Database Name 1",'
    + '"created_at":"2011-08-16T05:42:40-05:00","updated_at":"2011-08-16T05:42:40-05:00","dtypes_count":'
    + '0,"entities_count":1,"properties_count":0},{"id":"aOWO3eVXHdHie1WeGFE8k2","name":"Database Name 2",'
    + '"created_at":"2011-04-29T01:26:22-05:00","updated_at":"2011-08-16T00:47:56-05:00","dtypes_count":768,'
    + '"entities_count":6,"properties_count":240}]}') as TJsonObject;

  ShowMessage('Objects list:' + sLineBreak
    + Format('%d, %s, created %s', [0, obj.A['databases'][0].S['name'], DateToStr(obj.A['databases'][0].D['created_at'])]) + sLineBreak
    + Format('%d, %s, created %s', [1, obj.A['databases'][1].S['name'], DateToStr(obj.A['databases'][1].D['created_at'])])
    );
end;
...
Рейтинг: 0 / 0
Разобрать JSON ответ
    #39719142
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причем создание аналогичным образом идет. Благодаря чему избавляемся от кучи проверок и лишнего кода, если в json'е что-то отсутствует. Короче, одно удовольствие с ней работать.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Разобрать JSON ответ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]