delphi json
1.0.0
다른 Delphi Json Parsers가 마음에 들지 않았습니다. 그들은 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 라이센스 (MIT)
저작권 (C) 2018 Thomas Erlang
이에 따라이 소프트웨어 및 관련 문서 파일 ( "소프트웨어")의 사본을 얻는 사람에게는 허가가 부여됩니다. 소프트웨어의 사용, 복사, 수정, 합병, 배포, 배포, 숭고 및/또는 소프트웨어의 사본을 판매 할 권한을 포함하여 제한없이 소프트웨어를 처리 할 수 있도록 소프트웨어를 제공 할 권한이 없습니다.
위의 저작권 통지 및이 권한 통지는 소프트웨어의 모든 사본 또는 실질적인 부분에 포함되어야합니다.
이 소프트웨어는 상업성, 특정 목적에 대한 적합성 및 비 침해에 대한 보증을 포함하여 명시 적 또는 묵시적 보증없이 "그대로"제공됩니다. 어떠한 경우에도 저자 또는 저작권 보유자는 계약, 불법 행위 또는 기타, 소프트웨어 또는 소프트웨어의 사용 또는 기타 거래에서 발생하는 계약, 불법 행위 또는 기타의 행동에 관계없이 청구, 손해 또는 기타 책임에 대해 책임을지지 않습니다.