powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Разбор Json в Delphi7
5 сообщений из 5, страница 1 из 1
Разбор Json в Delphi7
    #40033752
Dmvrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброй ночи!
Избитая тема уже, но вот опять вопрос!
Delphi7, получаю JSon-строку из 1С. Там формат простой и стандартный.
Нужно разобрать полученные данные, а дальше обработать их, загрузить, обновить...
Вот формат данных (массив записей):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
[
{
"ID": "359",
"UnitID": "сут",
"UnitName": "Сутки",
"IsDel": 0
},
{
"ID": "349",
"UnitID": "Кл/кг",
"UnitName": "Кулон на килограмм",
"IsDel": 1
}
]

Вроде все просто. Берем SuperObject. Но он такую структуру не разбирает. Ему нужно это все обернуть в
{"Units":
тут то что выше.
}
т.е. дать название массива.

Хотелось бы не изменять переданные структуры.
Можно обойтись в Delphi7 чем-то простым и эффективным для данного случая?

Спасибо.
...
Рейтинг: 0 / 0
Разбор Json в Delphi7
    #40033753
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmvrt
Берем SuperObject. Но он такую структуру не разбирает.

Разбирает. :)
...
Рейтинг: 0 / 0
Разбор Json в Delphi7
    #40033754
Dmvrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видимо я не совсем понимаю работу SuperObject.
Подскажите

procedure TForm1.Button1Click(Sender: TObject);
var s: string;
aO: ISuperObject;
begin
s :=
'{"ww":[' +
' {' +
' "ID": "359",' +
' "UnitID": "сут",' +
' "UnitName": "Сутки",' +
' "IsDel": 0' +
' },' +
' {' +
' "ID": "349",' +
' "UnitID": "Кл/кг",' +
' "UnitName": "Кулон на килограмм",' +
' "IsDel": 1' +
' }' +
' ]}';

aO := SO(s);
ShowMessage(aO.A['ww'].O[0].S['ID']);

end;

на экране 359

Это получается обращение к именованному массиву, а к не именованному как обратиться?
procedure TForm1.Button1Click(Sender: TObject);
var s: string;
aO: ISuperObject;
begin
s :=
'[' +
' {' +
' "ID": "359",' +
' "UnitID": "сут",' +
' "UnitName": "Сутки",' +
' "IsDel": 0' +
' },' +
' {' +
' "ID": "349",' +
' "UnitID": "Кл/кг",' +
' "UnitName": "Кулон на килограмм",' +
' "IsDel": 1' +
' }' +
' ]';

aO := SO(s);
ShowMessage(aO.A[??????].O[0].S['ID']);

end;

????? - что там указать, пробовал '' - ошибка.

Уточню, мне нужно пройти по всем записям массива и считать каждое свойство.
и если не трудно, есть ли свойство - сколько записей всего в массиве?

Спасибо
...
Рейтинг: 0 / 0
Разбор Json в Delphi7
    #40033758
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmvrt,

.AsArray.Length - длина массива.
.A[i] - i-й элемент массива.
...
Рейтинг: 0 / 0
Разбор Json в Delphi7
    #40034323
Dmvrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,
Большое спасибо, все получилось!
С Новым годом и Рождеством!!!

Всех!!!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Разбор Json в Delphi7
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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