C# 意外响应和/或自动排序键
我是C#和WCF的新手 我已经经历过了。但解决不了 下面只是一个示例GET服务方法 预期的JSON格式为C# 意外响应和/或自动排序键,c#,json,wcf,C#,Json,Wcf,我是C#和WCF的新手 我已经经历过了。但解决不了 下面只是一个示例GET服务方法 预期的JSON格式为 {"result":"Hello","add":4} {"GetDataResult":{"add":4,"result":"Hello"}} 结果JSON格式为 {"result":"Hello","add":4} {"GetDataResult":{"add":4,"result":"Hello"}} 实体类是 [ServiceContract] public interface
{"result":"Hello","add":4}
{"GetDataResult":{"add":4,"result":"Hello"}}
结果JSON格式为
{"result":"Hello","add":4}
{"GetDataResult":{"add":4,"result":"Hello"}}
实体类是
[ServiceContract]
public interface IConnectDBService
{
[OperationContract]
[WebInvoke(Method = "GET",
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "val",
ResponseFormat = WebMessageFormat.Json)]
MyObject GetData();
}
[DataContract]
public class MyObject
{
[DataMember(Name = "result")]
public string result { get; set; }
[DataMember(Name = "add")]
public int add { get; set; }
}
服务级别为
public MyObject GetData()
{
return new MyObject { result = "Hello", add = 4 };
}
如何从结果中消除“GetDataResult”。请注意,在生成的JSON中,键是按字母顺序排序的。在我们的愿景中对JSON格式的任何建议
谢谢额外的
GetDataResult
是因为BodyStyle=WebMessageBodyStyle.Wrapped
。您可以删除该属性或将其更改为WebMessageBodyStyle.Bare
是,POST也是如此,但是,在这种情况下,您还必须在POST请求中处理JSON。请参阅MSDN上的WebMessageBodyStyle
枚举选项。“保重”…它的含义是什么?我的邮政服务仅使用包装的进行响应,但使用了意外的额外密钥。当更改为Bare
时,它返回XML/HTML,其中“服务器在处理过程中遇到错误”。请参阅“服务器日志”消息。对此有什么建议吗?我所说的“小心”是指在枚举中您可以选择将请求或响应或两者都设置为包装,或两者都不包装。对于您的错误,您可能必须向我们显示您发布的数据。如果问题密切相关,请修改您的问题;如果新问题会改变问题的整体含义,请打开新问题。