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

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

  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 صبح

  2. #2

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

    ببخشید میتونید یکم در مورد کاربرد جیسون توضیح بدید ؟

    تو دلفی برای خروجی اندروید چه کاربردی داره ؟

  3. #3

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

    نقل قول نوشته شده توسط rooterror مشاهده تاپیک
    ببخشید میتونید یکم در مورد کاربرد جیسون توضیح بدید ؟

    تو دلفی برای خروجی اندروید چه کاربردی داره ؟
    یه جستجوی ساده جوابهای خوبی بر میگردونه.
    http://www.dotech.ir/ShowNews/28/Jso...8C%D8%B3%D8%AA
    http://amib.ir/weblog/?p=532
    http://rasekhoon.net/forum/thread/33317/page1/

  4. #4
    کاربر تازه وارد
    تاریخ عضویت
    مهر 1385
    محل زندگی
    اصفهان
    پست
    70

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

    با سلام
    یه سوال داشتم، شما این خروجی Json رو با چه ابزاری در Android صدا می زنین؟
    من با روشی Proxy که خود Delphi Ex4 برای سرور DataSnap جهت MobileConnection میده تست کردم ولی هنوز موفق نشدم، می خواستم بدونم شما از چه روشی استفاده کردین؟
    آیا سرورتون Http بود یا TCP ؟

    با تشکر

  5. #5

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

    یه سوال داشتم، شما این خروجی Json رو با چه ابزاری در Android صدا می زنین؟
    در جاوا شما با گرفتن ارایه ای از JsonObject میتونید مقدار خروجی این وب سرویس رو نمایش بدید
    من با روشی Proxy که خود Delphi Ex4 برای سرور DataSnap جهت MobileConnection میده تست کردم ولی هنوز موفق نشدم، می خواستم بدونم شما از چه روشی استفاده کردین؟-
    استفاده از روشهایی که در سمپلهای موجود وجود داره برای نسخه های بالای 4 مشکل داره و کاملا غیر منطقی و غیر اصولی است.
    آیا سرورتون Http بود یا TCP ؟
    به راحتی با یک HTTPServer میتونید یک وب سرور طراحی و با متد Post مقدار ارسال و در یک HTTPClient خروجی مورد نظر با فرمت جیسون رو دریافت کنید.

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

  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 صبح

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

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

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