1

私はこのコードを持っています。オブジェクト「人」を作成し、メソッド「DoJson」で人を宣言して返します。インターネットで例を見ましたが、同じことをしましたが、機能しません。

public class Service1 : System.Web.Services.WebService
{
   [WebMethod]
   [ScriptMethod(ResponseFormat = ResponseFormat.Json)]//Specify return format.
   public string DoJson()
   {
        var pers = new Person();
        pers.edad = 1;
        pers.nombre = "Name";

        return pers;
    }
}

public class Person
{
    public int edad;
    public string nombre;
}
4

3 に答える 3

0

あなたの場合、メソッド DoJson() の戻り値の型を変更するだけでよいと思います(現時点では、オブジェクトを文字列として返しています)

変化する:

public string DoJson()

に:

public Person DoJson()

それからもちろん、人を返します。

これは、シリアライザーが自分が人であることを認識してからシリアライズを開始する必要があるためです。

于 2013-05-07T10:56:23.263 に答える
0

これに変更

   [WebInvoke(Method = "GET", 
                ResponseFormat = WebMessageFormat.Json, 
                UriTemplate = "data/{id}")]
    public Person GetData(string id)
    {
        // lookup person with the requested id 
        return new Person()
                   {
                       edad= Convert.ToInt32(edad), 
                       nombre = "Leo Messi"
                   };
    }
于 2013-05-07T10:53:55.663 に答える