[英]WCF REST web service - Deserialization of Json
我在WCF Web服务上遇到问题。 我有这个错误:
服务器在处理请求时遇到错误。
我认为是由于JSON的反序列化,我将过去我的代码,请给我一些帮助,谢谢。
这是原始的JSON:
{
"properties" : {
"callID" : "4A79825AE0914B6B9B27F477CAF8A32B",
"timestamp" : "2018-06-05T08:50:41.064+0000",
"data" : {
"Name" : "Y",
"Surname" : "X",
"Age" : [ "25" ]
},
"localEvent" : "X",
"eventtype" : "X"
}
}
我有以下课程:
public class CSModel
{
public CSProperties properties { get; set; }
}
public class CSProperties
{
public string callID{ get; set; }
public string timestamp{ get; set; }
public CSData DataModel { get; set; }
public string localEvent{ get; set; }
public string eventtype{ get; set; }
}
public class CSData
{
public string Name{ get; set; }
public string Surname{ get; set; }
public string Age{ get; set; }
}
在这里,我解码了JSON:
string jsonBody = new StreamReader(contents).ReadToEnd();
CSModel jsonModel = JsonConvert.DeserializeObject<CSModel>(jsonBody);
由于您的C#类表示形式不正确,您需要更改几件事
使用属性( [JsonProperty(ProperyName = "data")]
)装饰名称与JSON本身名称不同的类属性。 如果您不这样做,那么您的DataModel
属性将保持为null。
"Age"
属性保存字符串数组类型的值,这意味着您需要将C#属性更改为string[]
。 必须更改此项以防止由于类型不匹配而导致的异常
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.