我尝试将json数据发布到自托管WCF服务
当json字符串如此时,POST工作正常
{"data": "testdata"}
当json字符串为时,相同的POST不起作用并返回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字符串之间有什么区别
我怎样才能解决我的问题
谢谢。
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)