gpt4 book ai didi

asp.net-mvc-4 - ASP.NET MVC 4 返回 Json 导致双 json 或空数据

转载 作者:行者123 更新时间:2023-12-01 14:30:50 25 4
gpt4 key购买 nike

我得到空 Json 结果或双 json 结果,我还不知道为什么?

基线: http://learn.knockoutjs.com/mail?folder=Inbox在 chrome F12 中看起来像这样:{"id":"Inbox","mails":[{"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 网络跟踪已将数据加倍。"{\"id\":\"Inbox\",\"mails\":[{\"id\":1,\"from\":\"Ab....}"

因为我不知道 Json 到底是什么,所以我做了 newton soft dynamic convertJsonConvert.DeserializeObject

这可能是我空洞回应背后的问题?

任何帮助将不胜感激。谢谢

最佳答案

您的第一个方法失败了,因为 Json() 不理解从您的 JSON 读取器返回的动态对象。
您的第二种方法失败,因为 Json() 正在序列化预序列化的字符串。

您可以使用 Content(jsonString, "application/json") 返回预序列化的 JSON 数据

关于asp.net-mvc-4 - ASP.NET MVC 4 返回 Json 导致双 json 或空数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12379772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com