نمایش نتایج 1 تا 5 از 5

نام تاپیک: وب سرور با دلفی و خروجی Json برای پلتفرمهایی مانند اندروید

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    Thumbs up وب سرور با دلفی و خروجی Json برای پلتفرمهایی مانند اندروید

    سلام.
    در حال طراحی وب سروری بودم که چون برای کلاینتش که اندروید بود ، مجبور بودم از فرمت Json استفاده کنم ، هر چی نتو زیرو رو کردم، چیز به درد بخوری پیدا نکردم.
    البته بودند کامپوننت و ابزارهایی برای اینکار. که بیشترشون از دلفی های نسخه های بالا پشتیبانی میکردند و به درد من نمیخورد.
    اومدمو برا خودم یه کد با حال زدم و خروجی کوئریم رو در قالب جیسون(مزحک) در اوردم.
    البته کارم عجله ایه و این کد کارمو راه انداخت. ایشالا دست حاج یوسف خلوت شد ، کمکم میکنه و تبدیلش میکنیم به کامپوننت که مستقیم به دیتا ست وصل بشه و حالشو ببریم.
    البته بگم، نیایید بگید فلان کامپوننت و فلان روش بودا. میدونم عزیزان. حال کردم خودم طراحی کنم
    برنامه رو میتونید از این لینک بگیرید.
    رمزشم هست:
    123321Mask

    البته اینم بگم که روشی که بنده در این سمپل استفاده کردم ،روشی هست که دست برنامه نویس بازه و حتی میتونه از بیرون بهش مقدار پاس بده.یعنی فیلدهایی که نیازه که ازشون گزارش به فرمت جیسون گرفته بشه، رو میتونید بصورت استرینگ از بیرون برنامه لود کنید.
    کد زیر هم روی نسخه دلفی من جواب داد. اما من محدودیت هایی از لحاظ داینامیک بودن، رو درش دیدم که بیخیالش شدم و خودم مجدد چرخ رو به روش خودم اختراع کردم
    unit Unit1;

    interface


    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls, DBXJSON, DBXJSONReflect;


    type
    TPerson = class(TObject)
    public
    Name: String;
    Password: String;
    Age: Integer;
    end;


    type
    TForm1 = class(TForm)
    Button1: TButton;
    Memo2: TMemo;
    Button2: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    private
    { Private declarations }
    public
    function ObjectToJSON(AData: TObject): TJSONValue;
    function JSONToObject(AJSONValue: TJSONValue): TObject;
    { Public declarations }
    end;


    var
    Form1: TForm1;


    implementation


    {$R *.dfm}


    procedure TForm1.Button1Click(Sender: TObject);
    var
    lPerson: TPerson;
    lJSONValue: TJSONValue;
    begin
    Memo2.Lines.Clear;
    lPerson := TPerson.Create;
    lPerson.Name := 'Hezihang';
    lPerson.Password := '123';
    lPerson.Age := 23;


    lJSONValue := ObjectToJSON(lPerson);


    FreeAndNil(lPerson);
    Memo2.Lines.Add(lJSONValue.ToString);
    lJSONValue.Free;


    end;


    procedure TForm1.Button2Click(Sender: TObject);
    var
    lPerson: TPerson;
    lJSONValue: TJSONValue;
    begin
    Memo1.Clear;
    lJSONValue := TJSONObject.ParseJSONValue(Memo2.Text);
    lPerson := JSONToObject(lJSONValue) as TPerson;
    lJSONValue.Free;
    Memo1.Lines.Add('Name: ' + lPerson.Name);
    Memo1.Lines.Add('Password: ' + lPerson.Password);
    Memo1.Lines.Add('Age: ' + IntToStr(lPerson.Age));
    lPerson.Free;
    end;


    function TForm1.JSONToObject(AJSONValue: TJSONValue): TObject;
    var
    lUnMarshal: TJSONUnMarshal;
    begin
    lUnMarshal := TJSONUnMarshal.Create();
    try
    Result := lUnMarshal.Unmarshal(AJSONValue);
    finally
    FreeAndNil(lUnMarshal);
    end;
    end;


    function TForm1.ObjectToJSON(AData: TObject): TJSONValue;
    var
    lMarshal: TJSONMarshal;
    begin
    lMarshal := TJSONMarshal.Create();
    try
    Result := lMarshal.Marshal(AData);
    finally
    FreeAndNil(lMarshal);
    end;
    end;


    end.


    آخرین ویرایش به وسیله Mask : یک شنبه 03 آبان 1394 در 01:51 صبح

تاپیک های مشابه

  1. ساخت خروجی json توسط javascript؟؟؟؟!
    نوشته شده توسط php_qq در بخش طراحی وب (Web Design)
    پاسخ: 0
    آخرین پست: سه شنبه 22 بهمن 1387, 21:26 عصر
  2. تولید خروجی RSS برای وبلاگ
    نوشته شده توسط آرش کمانگیر در بخش XML و کاربرد آن
    پاسخ: 3
    آخرین پست: سه شنبه 16 مهر 1387, 11:36 صبح
  3. پاسخ: 0
    آخرین پست: یک شنبه 12 بهمن 1382, 09:14 صبح
  4. خروجی PDF برای report builder 5.0
    نوشته شده توسط Mahdavi در بخش برنامه نویسی در Delphi
    پاسخ: 2
    آخرین پست: یک شنبه 02 آذر 1382, 22:54 عصر
  5. مقایسه دلفی و ویژوال بیسیک برای یک برنامه نویسی دیتابیسی
    نوشته شده توسط موسوی در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 19
    آخرین پست: چهارشنبه 24 اردیبهشت 1382, 08:19 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •