WebMethod Rückkehr JSON, aber die Antwort obj in meinem $.ajax () - callback wird nur ein string

Hier ist meine home-made-Serialisieren der Klasse:

public class JsonBuilder
{
    private StringBuilder json;

    public JsonBuilder()
    {
        json = new StringBuilder();
    }

    public JsonBuilder AddObjectType(string className)
    {
        json.Append("\"" + className + "\": {");
        return this;
    }

    public JsonBuilder Add(string key, string val)
    {
        json.AppendFormat("\"{0}\":\"{1}\",", key, val);
        return this;
    }

    public JsonBuilder Add(string key, int val)
    {
        json.AppendFormat("\"{0}\":{1},", key, val);
        return this;
    }

    public string Serialize()
    {
        return json.ToString().TrimEnd(new char[] { ',' }) + "}";
    }
}

Hier ist die Web-Methode

[WebMethod]
public static string GetPersonInfo(string pFirstName, string pLastName)
{
    var json = new JsonBuilder().AddObjectType("Person");
    json.Add("FirstName", "Psuedo" + pFirstName).Add("LastName", "Tally-" + pLastName);
    json.Add("Address", "5035 Macleay Rd SE").Add("City", "Salem");
    json.Add("State", "Oregon").Add("ZipCode", "97317").Add("Age", 99);
    return json.Serialize();
}

Den Ajax-call client-Seite

 $.ajax(
   {
       type: "POST",
       url: "Default.aspx/GetPersonInfo",
       data: JSON.stringify(name),
       contentType: "application/json; charset=uft-8",
       dataType: "json",
       success: function (rsp) { SetPerson(rsp); },
       error: function (rsp)
       {
           alert(rsp);
       }
   });

Und schließlich, meine callback-Methode

function SetPerson(rsp)
{
    $('#fName').val(rsp.d.FirstName);
    $('#lName').val(rsp.d.LastName);
    $('#address').val(rsp.d.Address);
    $('#city').val(rsp.d.City);
    $('#state').val(rsp.d.State);
    $('#zip').val(rsp.d.ZipCode);
    SetPerson(rsp.d.Age);
}

rsp.d ist ein string, der enthält alle Eigenschaften, die ... die Eigenschaften selbst sind nicht definiert. Ich weiß, ich bin etwas fehlt einfach hier.

Zurückgegebenen string von server

"Person": {"FirstName":"Psuedomatt","LastName":"Tally-cox","Address":"5035 Macleay Rd SE","City":"Salem","State":"Oregon","ZipCode":"97317","Age":99}
  • Können Sie uns zeigen, was den JSON-string, der vom server zurückgegeben aussieht?
  • Battle aktualisiert die post einschließen, um die zurückgegebene Zeichenfolge
  • Als ein beiseite, ich würde mal in die JavascriptSerializer und JavaScriptConverter Klassen und sparen Sie sich eine Kopfschmerz.
InformationsquelleAutor Feisty Mango | 2011-03-08
Schreibe einen Kommentar