DCSIMG
שליחה של Complex Type ו - Array ל - Web Service בפורמט JSON - שלמה גולדברג (הרב דוטנט)

שלמה גולדברג (הרב דוטנט)

מרצה בסלע ויועץ בעולם ה - net.

שליחה של Complex Type ו - Array ל - Web Service בפורמט JSON

 

בהמשך לפוסט Web Service -> JSON -> JavaScript. קל פשוט ונהדר אני מדגים שם איך לפנות ל - WebSerive ולקבל את התשובות בפורמט JSON,
 
בפוסט הנוכחי אני אדגים איך פונים ל - WebService שמצפה לקבל טיפוס שהוא לא מה - Primitive Types.
 
נניח שיש WebService שנראה כך: (לא לשכוח להוריד את ההערה מ - ScriptService - אחרת אי אפשר להפעיל מ - JS)
 

[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

[ToolboxItem(false)]

[ScriptService]

public class WebService1 : WebService

{

 

    [WebMethod]

    public void SetPerson(Person person)

    {

        // Do Logic.....

    }

}

 

public class Person

{

    public int Id { get; set; }

    public string Name { get; set; }

    public string[] Childern { get; set; }

}

 
יש את המתודה ב - JS (היא מוסברת בפוסט הקודם)
 

function GetSynchronousJSONResponse(url, postData) {

    var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

 

    xmlhttp.open("POST", url, false);

    xmlhttp.setRequestHeader("Content-Type",

       "application/json; charset=utf-8");

 

    xmlhttp.send(postData);

    var responseText = xmlhttp.responseText;

    return responseText;

}

 
כעת מה שנשאר לנו לעשות זה את הדבר הבא:
 
למעשה ה - postData צריך להיראות כך:
 

var jsonPostData = '{person: {Id: 10, Name: "noam", Childern: ["kivi", "banana", "orange"]}}';

 
בבנייה דינמית נעשה את זה כך:
 

function SetPerson() {

    var id = 10;

    var name = 'noam';

    var childern = new Array();

    childern[0] = 'kivi';

    childern[1] = 'banana';

    childern[2] = 'orange';

 

 

    var jsonPostData = '{person: ' +

                            '{Id: ' + id +

                            ', Name: "' + name +

                            '", Childern : ["' + childern[0] +

                                           '","' + childern[1] +

                                           '","' + childern[2] +

                                           '"]}}';

 

    GetSynchronousJSONResponse("http://localhost:49395/WebService1.asmx/SetPerson",

                                jsonPostData);

}

 
וזהו, נוכל להגיע לשרת עם האובייקט שלנו שנשלח מ - JS

תוכן התגובה

שלמה גולדברג כתב/ה:

כתבתי כמה פוסטים על הפעלה של WebService מתוך JavScript ומקבלים תוצאות ב - JSON. זה עובד מעולה בתוך אותו

# March 5, 2010 11:03 AM
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 1 and 8 and type the answer here:


Enter the numbers above: