我得到空的JSON结果或双JSON结果,我不知道为什么呢?ASP.NET MVC 4返回Json导致双JSON或空数据
基线: http://learn.knockoutjs.com/mail?folder=Inbox 看起来像这样在铬F12:{ “ID”: “收件箱”, “邮件”:[{ “ID”:1,......}
我的行动:
public ActionResult Mail()
{
string qs = "";
foreach (var q in Request.QueryString)
{
qs += string.Format("{0}={1}&", q, Request.QueryString[q.ToString()]);
}
var proxyRequest = "http://learn.knockoutjs.com/mail?" + qs;
var request = WebRequest.Create(proxyRequest);
var response = (HttpWebResponse)request.GetResponse();
var reader = new StreamReader(response.GetResponseStream());
var str = reader.ReadToEnd();
var data = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(str);
//var json = JsonConvert.SerializeObject(data);
// Text Visualization looks good {"id":"Inbox","mails":[{"id":1,"from":"Abb....}
// no outside quotes, no escaped quotes
var res = Json(data, JsonRequestBehavior.AllowGet);
return res;
}
所以基本上我进行代理的电话,但问题是为什么是赶回来,无论是不是在或双jsoned填充的结果。
使用chrome网络跟踪上面的结果看起来像。 [[[]],[[[[]],[[]],[[]],[[]],[[]],...]
有效的json,
当我改变的代码看起来像这样
var json = JsonConvert.SerializeObject(data);
// Text Visualization looks good {"id":"Inbox","mails":[{"id":1,"from":"Abb....}
// no outside quotes, no escaped quotes
var res = Json(json, JsonRequestBehavior.AllowGet);
return res;
Chrome的网络跟踪了一倍jsoned数据。 “{\”id \“:\”Inbox \“,\”mails \“:[{\”id \“:1,\”from \“:\”Ab ....}“
因为我不知道是什么JSON的其实是,我做了牛顿软动态转换 JsonConvert.DeserializeObject
这可能是我的身后空响应的问题?
任何帮助将真正理解。 感谢
回到预先序列化JSON数据。如果你满意的回答,您可以点击旁边的复选框答案接受呢? – McGarnagle