我正在开发使用 Facebook C# SDK (6.0.10.0) 和 Newtonsoft.Json (4.5.0.0) 的 asp.net mvc 4 应用程序。
使用 FacebookClient 的请求返回 expando 对象:
[Authorize]
public ActionResult GetFbData(string path = "me"){
var expando = this.fb.Get(path);
return Json(expando);
}
返回的 Json 看起来像:
[{"Key":"id","Value":"100000xxxxxxxx"},{"Key":"name","Value":"John Doe"} ... ]
我想以格式返回它,{id:100000xxxxxxx, name:"John Doe", ... }
所以我将它添加到创建我的 fb 客户端的代码中:
fb.SetJsonSerializers(JsonConvert.SerializeObject,
JsonConvert.DeserializeObject);
上面的相同代码现在返回:
[[[]],[[]],[[]],[[]],[[]],[[]],[[[[]],[[]]]],[[[[]],[[]]]],[[]],[[]],[[[[[[[]],[[]]...]
我可以通过以下方式获得所需的结果:
return Content(JsonConvert.SerializeObject(Expando));
这会返回正确的 Json,但 Content-Type 是text/html; charset=utf-8
,我想知道如何在不手动设置响应标头等的情况下将所需的格式返回为 JsonResult,我只想更改默认序列化行为而不重新实现序列化程序等。
必须通过单行代码完成一些简单的事情来改变这种行为,我希望有人已经找到了它。