如何在c#中传递json对象
本文关键字:json 对象 | 更新日期: 2023-09-27 18:12:39
我有这个代码,我创建了一个对象"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;
}
您需要执行从object到json的转换。请参阅MSDN文档中的转换器-
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不存在,您可能需要添加一个引用
改成这个
[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"
};
}
在你的情况下,我认为你只需要改变DoJson()方法的返回类型(在你返回一个对象作为字符串的时刻)
改变:
public string DoJson()
:
public Person DoJson()
当然,返回一个人。
这是因为序列化程序需要知道它是一个人,然后开始序列化。