Не понравился другой Delphi Json Parsers. Они казались слишком сложными для простой задачи, которую я имел для JSON.
Так что это я иду.
Эта версия протестирована только на Delphi XE 3, Delphi XE 6 (Android) и Delphi 10, но должна работать для всех версий Delphi, которые поддерживают Generics и TstringHelper.
Просто включите файл djson.pas в свой список использования для работы.
{
"username" : " thomas " ,
"name" : " Thomas " ,
"photos" : [
{
"title" : " Photo 1 " ,
"urls" : {
"small" : " http://example.com/photo1_small.jpg " ,
"large" : " http://example.com/photo1_large.jpg "
}
},
{
"title" : " Photo 2 " ,
"urls" : {
"small" : " http://example.com/photo2_small.jpg " ,
"large" : " http://example.com/photo2_large.jpg "
}
}
],
"int_list" : [
1 ,
2 ,
3
]
} var
user: TdJSON;
photo: TdJSON;
i: TdJSON;
begin
user := TdJSON.parse( { JSON_TEXT } );
try
writeln( ' Username: ' + user[ ' username ' ].AsString);
writeln( ' Name: ' + user[ ' name ' ].AsString);
// Photos
for photo in user[ ' photos ' ] do
begin
writeln( ' Title: ' + photo[ ' title ' ].AsString);
writeln( ' Small url: ' + photo[ ' urls ' ][ ' small ' ].AsString);
writeln( ' Large url: ' + photo[ ' urls ' ][ ' large ' ].AsString);
end ;
// Int list
for i in user[ ' int_list ' ] do
begin
writeln(i.AsInteger);
end ;
finally
user.free;
end ;
end ;[
{
"username" : " thomas " ,
"name" : " Thomas "
},
{
"username" : " kurt " ,
"name" : " Kurt "
},
{
"username" : " bent " ,
"name" : null
}
] var
users: TdJSON;
user: TdJSON;
begin
users := TdJSON.Parse( { JSON_TEXT } );
try
for user in users do
begin
writeln(user[ ' username ' ].AsString);
if ( not user[ ' name ' ].IsNull) then
writeln(user[ ' name ' ].AsString);
end ;
finally
users.Free;
end ;
end ;Лицензия MIT (MIT)
Авторские права (с) 2018 Томас Эрланг
Настоящим дается разрешение, бесплатно, любому лицу, получающему копию этого программного обеспечения и связанные с ними файлы документации («Программное обеспечение»), чтобы иметь дело в программном обеспечении без ограничений, включая, без ограничения, права на использование, копирование, изменение, объединение, публикацию, распределение, сублиценность и/или продавать копии программного обеспечения и разрешения лиц, на которые программное обеспечение подходит для того, чтобы поступить так, чтобы поступить на следующие условия: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: на следующие условия: к следующим условиям: на следующие условия: на следующие условия.
Вышеуказанное уведомление об авторском праве и это уведомление о разрешении должно быть включено во все копии или существенные части программного обеспечения.
Программное обеспечение предоставляется «как есть», без гарантии любого рода, явного или подразумеваемого, включая, помимо прочего, гарантии товарной пригодности, пригодности для определенной цели и несоответствия. Ни в коем случае авторы или владельцы авторских прав не будут нести ответственность за любые претензии, убытки или другую ответственность, будь то в действии контракта, деликт или иным образом, возникающие из или в связи с программным обеспечением или использованием или другими сделками в программном обеспечении.