لم يعجبهم محلات دلفي جيسون الأخرى هناك. لقد بدوا معقدين للغاية بالنسبة للمهمة البسيطة التي مررت بها لـ JSON.
لذلك هذا هو ذهابي في ذلك.
يتم اختبار هذا الإصدار فقط على Delphi XE 3 و Delphi XE 6 (Android) و Delphi 10 ولكن يجب أن يعمل مع جميع إصدارات Delphi التي تدعم الأدوية الجيرية و 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)
حقوق الطبع والنشر (ج) 2018 توماس إرلانج
يتم منح الإذن بموجب هذا ، مجانًا ، لأي شخص يحصل على نسخة من هذا البرنامج وملفات الوثائق المرتبطة به ("البرنامج") ، للتعامل في البرنامج دون تقييد ، بما في ذلك على سبيل المثال لا الحصر حقوق استخدام الأشخاص ونسخها ودمجها ودمجها وتوزيعها وتوزيعها على ما يلي:
يجب إدراج إشعار حقوق الطبع والنشر أعلاه وإشعار الإذن هذا في جميع النسخ أو الأجزاء الكبيرة من البرنامج.
يتم توفير البرنامج "كما هو" ، دون أي ضمان من أي نوع ، صريح أو ضمني ، بما في ذلك على سبيل المثال لا الحصر ضمانات القابلية للتسويق واللياقة لغرض معين وعدم الانفجار. لا يجوز بأي حال من الأحوال أن يكون المؤلفون أو حاملي حقوق الطبع والنشر مسؤولاً عن أي مطالبة أو أضرار أو مسؤولية أخرى ، سواء في إجراء عقد أو ضرر أو غير ذلك ، ناشئة عن أو خارج البرنامج أو الاستخدام أو غيرها من المعاملات في البرنامج.