【发布时间】:2014-12-10 19:30:28
【问题描述】:
这是我的第一个 REST 服务,基本上它是一个自托管服务,它在端口上侦听 PUT 调用,该调用将具有 JSON 数据的有效负载。我想将其转换为本机对象,我认为序列化程序可以自动完成,但它不起作用。
这个 SO 对我有用:WCF REST Service JSON Post data
我可以将 JSON 数据作为流获取并将其输出到日志中就好了,但现在我想知道 WCF 是否可以自动将 JSON 数据放入我的对象。
JSON 数据是这样的。
{
"ID": 639073,
"PatientFirst": "John",
"PatientLast": "Smith",
"Birthdate": "1/1/2000",
"PtEmail":"rdejournett@medfusion.com",
"Sex": "F",
"mrn": ""
}
我有一个 ApptData 类,就是这个。
[DataContract]
class ApptData {
[DataMember]
internal string ID = "";
[DataMember]
internal string PatientFirst = "";
[DataMember]
internal string PatientLast = "";
[DataMember]
internal string Birthdate = "";
[DataMember]
internal string PtEmail = "";
[DataMember]
internal string Sex = "";
[DataMember]
internal string mrn = "";
public ApptData() { }
}
iContract 就是这个。我想使用被注释掉的东西。
[ServiceContract]
interface iContract
{
[OperationContract]
[WebInvoke(Method = "PUT", UriTemplate = "CheckinPUT", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
[OperationContract]
//Stream PatientCheckinWithDemos(ApptData data);
Stream PatientCheckinWithDemos(Stream streamdata);
}
【问题讨论】:
-
你能发布反序列化 JSON 的代码吗?即使它不起作用?出于好奇,您为什么使用字段而不是属性?
-
这基本上是我的问题,我需要创建代码来反序列化它还是有办法轻松地做到这一点?
-
do I need to create code to deserialize it or is there a way to do it somewhat easily?不,您评论的界面是正确的方法,它应该可以工作。如果我没记错的话,你应该使用WebHttpBinding。