我有一个以下列格式创建的大量Jobject类型数据集
{
"key_1": {"id":"1", "name":"some1", ....},
"key_2": {"id":"", "name":"some2", .....}
}
我使用以下代码创建了这样的对象结构:
JObject res = new JObject();
JObject jo = new JObject();
jo.Add("id", "1");
jo.Add("name", "some1");
res.Add("key_1", jo);
等等;
我有一个webservice方法,其返回类型对象和属性为
[WebMethod][ScriptMethod(ResponseFormat = ResponseFormat.Json)]
如何在ajax请求中将此数据作为对象返回。我试过
res.ToObject<(object)>() //added curely braces around object because of html object tag但它在客户端返回空数组,但我的期望是获得如上所述的结果(一个正确的对象)。我应该如何返回res以获得所需的json输出
答案 0 :(得分:0)
已编辑 - 感谢Brian
你 CAN 做的事情与你应该做的事情有区别......
返回JObject的正确方法取决于你...创建代表它们的真实对象...创建可序列化的键/值对...
你不想做的只是把JSON写到回复中......但是,因为那就是你的要求......这就是你将如何做到这一点。
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void GetObject()
{
string json = GetJsonFromDatabase();
HttpContext.Current.Response.Write(json);
}
请注意,您的方法必须返回void,并且您正在将json直接写入响应流。超级肮脏......超级丑陋......请不要这样做。您还必须手动将其转换为js侧的对象。