POST JSON返回到WCF服务返回(400错误请求)

时间:2019-03-14 07:50:19

标签: json wcf

我试图将json数据发布到自托管的WCF服务中

当json字符串(如

)时,POST运行良好
{"data": "testdata"}

相同的POST无法正常工作,当json字符串为as时返回400(错误请求)错误消息

{data: [{
     data1: "testvalue1",
     data2: "testvalue2",
     data3: "testvalue3",
     data4: "testvalue4",
}]
}

这是我的WCF服务代码

<OperationContract>
<WebInvoke(Method:="POST", ResponseFormat:=WebMessageFormat.Json, RequestFormat:=WebMessageFormat.Json, BodyStyle:=WebMessageBodyStyle.Wrapped)>
Private Function DoWork(ByVal data As string) As system.servicemodel.channels.message

    // DO SOMETHING WITH DATA

end function

在我的情况下,json字符串和嵌套的json字符串有什么区别

我该如何解决我的问题

谢谢。

1 个答案:

答案 0 :(得分:0)

WCF无法将json中表示的复杂对象反序列化为string。为了使示例工作,您需要接受操作中的一组复杂对象

//complex object class
[DataContract]
public class DataModel
{
    [DataMember(Name = "data1")]
    public string Data1 { get; set; }

    [DataMember(Name = "data2")]
    public string Data2 { get; set; }

    [DataMember(Name = "data3")]
    public string Data3 { get; set; }

    [DataMember(Name = "data4")]
    public string Data4 { get; set; }
}

private Message DoWork(List<DataModel> data)