我试图将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字符串有什么区别
我该如何解决我的问题
谢谢。
答案 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)