我希望服务以下列JSON格式(不是字符串)返回数据:
{{name:"ABC"},{Id:"ABC123"}}
我正在尝试从WCF函数返回JsonResult
。我创建了一个IList<Dictionary>
来存储从数据库中获取的数据,然后使用Controller类的JsonResult
函数将其转换为Json()
。我希望在使用Fiddler测试时从此服务接收JSON数据,而我收到504结果说:
&#34; [Fiddler] ReadResponse()失败:服务器没有返回响应 对于这个请求。服务器返回0个字节。&#34;
可能是什么原因?
答案 0 :(得分:0)
为什么你在wcf中使用mvc的JsonResult,这是一个要求吗?您可以返回Json.NET的JObject对象而不是JsonResult,或者像这样的动态对象:
public dynamic GetData()
{
dynamic objReturn = new ExpandoObject();
objReturn.Id = "ABC123";
objReturn.name = "ABC";
JavaScriptSerializer objSerializer = new JavaScriptSerializer();
return objSerializer.Serialize(objReturn);
}
答案 1 :(得分:0)
设置跟踪日志,您可以在traceviewer中打开该日志以查找有关错误的更多信息。更改配置文件,如以下MSDN文章http://msdn.microsoft.com/en-us/library/ms733025%28v=vs.110%29.aspx
中所示不确定这是否有帮助,但是当我返回一个对象或一个列表时,我创建了一个我想要返回的类型的对象,确保我已经包含了DataContract和DataMember属性来序列化它。例如:
[DataContract]
public class User
{
[DataMember(Name="email")]
public string EmailAddress { get; set; }
[DataMember(Name = "name")]
public string Name { get; set; }
创建服务接口,返回用户对象列表
[WebGet(UriTemplate = "/users", ResponseFormat = WebMessageFormat.Json)]
List<User> GetUsers();
实现界面,当您返回列表时,它将透明地序列化为JSON
public List<User> GetUsers()
{
List<User> userList = new List<User>();
//Create your user list here
return userList;
}