delphi json
1.0.0
不喜歡其他Delphi JSON解析器。對於我對JSON的簡單任務來說,它們似乎太複雜了。
所以這是我的選擇。
此版本僅在Delphi Xe 3,Delphi Xe 6(Android)和Delphi 10上進行測試,但應適用於支持仿製藥和TSTRINGHELPER的所有Delphi版本。
只需將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)
版權(C)2018 Thomas Erlang
特此免費授予獲得此軟件副本和相關文檔文件副本(“軟件”)的任何人,以無限制處理該軟件,包括無限制的使用權,複製,複製,修改,合併,合併,發布,分發,分發,分發,訂婚,和/或允許軟件的副本,並允許對以下條件提供以下條件,以下是以下條件。
上述版權通知和此許可通知應包含在軟件的所有副本或大量部分中。
該軟件是“原樣”提供的,沒有任何形式的明示或暗示保證,包括但不限於適銷性,特定目的的適用性和非侵權的保證。在任何情況下,作者或版權持有人都不應對任何索賠,損害賠償或其他責任責任,無論是在合同,侵權的訴訟中還是其他責任,是由軟件,使用或與軟件中的使用或其他交易有關的。