【发布时间】:2013-04-17 12:33:51
【问题描述】:
我有一个 C#.net 方法,如下所示
public string jsonTest()
{
List<string> list = new List<string>();
list.Add("aa");
list.Add("bb");
list.Add("cc");
string output = JsonConvert.SerializeObject(list);
return output;
}
尽管我使用 JsonConvert.SerializeObject 创建了一个 Json 对象,但我得到了一个字符串(因为返回类型是字符串)。
我可以像下面那样使用返回类型 JsonResult(或类似的东西)来做类似我们在 MVC 中可以做的事情吗?
return Json(new { data = list }, JsonRequestBehavior.AllowGet);
是否可以在asp.net中创建Json数据?
在客户端,我使用 ajax 调用从 jsonTest() 获取数据。
$.ajax({
type: 'GET',
url: "test.aspx", //In test.aspx pageload calling jsonTest()
dataType: 'json',
success: function (data) {
alert(data);
},
error: function (data) {
alert("In error");
}
});
当我给出 dataType: 'json' 时,它将进入错误部分(因为 ajax 需要 json 数据但它得到字符串)。这就是为什么我想在服务器端将其解析为 json 对象。
【问题讨论】:
-
您希望它用于服务器端消费还是客户端?你想用结果来完成/做什么?
-
如果您正在谈论创建一个 asp 网络方法,您返回字符串类型并使用 Json 序列化程序来转换对象
-
这应该是 WebMethod 吗?如果是这样,只需将您的返回类型设为
List<string>,它就会自动序列化为 JSON(不是转义的“JSON-string”)
标签: c# asp.net json object json.net