如何在c#中传递json对象

时间:2013-05-07 10:39:19

标签: c# json

我有这个代码,我创建了一个对象“person”,在方法“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;
}

3 个答案:

答案 0 :(得分:0)

您需要执行从object到json的转换。请参阅MSDN Docs on the converter -

public string DoJson(){
    var pers = new Person();
    pers.edad = 1;
    pers.nombre = "Name";
    System.Web.Script.Serialization.JavaScriptSerializer oSerializer = 
            new System.Web.Script.Serialization.JavaScriptSerializer();
    return  oSerializer.Serialize(pers);
}

如果还不存在System.Web dll,您可能需要添加对{{1}} dll的引用。

答案 1 :(得分: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"
                   };
    }

答案 2 :(得分:0)

在你的情况下,我认为你只需要改变方法DoJson()的返回类型(当你将对象作为字符串返回时)

更改:

public string DoJson()

要:

public Person DoJson()

当然,回归一个人。

这是因为序列化程序需要知道它是一个人,然后开始序列化。