Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 意外响应和/或自动排序键_C#_Json_Wcf - Fatal编程技术网

C# 意外响应和/或自动排序键

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

我是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 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,其中“服务器在处理过程中遇到错误”。请参阅“服务器日志”消息。对此有什么建议吗?我所说的“小心”是指在枚举中您可以选择将请求或响应或两者都设置为包装,或两者都不包装。对于您的错误,您可能必须向我们显示您发布的数据。如果问题密切相关,请修改您的问题;如果新问题会改变问题的整体含义,请打开新问题。