[英]Json.NET Failing to Deserialize List<string> from JSON Array
我在反序列化带有JSON.net的DeserializeObject的属性时遇到问题。 JSON格式正确,可以使用DeserializeObject提取并访问dynamic属性,但是当我从模型中反序列化时,该属性始终为null。
我正在使用JSON.net v10。
有关属性的定义如下:
[JsonProperty(PropertyName = "email")]
public List<string> EmailAddresses { get; set; }
Json如下:
"representative" : {
"id" : 16,
"username" : "jb",
"firstName" : "James",
"lastName" : "Bond",
"emailAddress" : "demo@backstopsolutions.com"
},
"email" : [ "test213@example.com", "test312@backstopsolutions.com" ],
"permissionTag" : "Public",
"website" : null,
当我反序列化带有对象的对象时,即
var restResponse = await client.ExecuteTaskAsync<T>(request, cancelToken);
该属性为null。
我可以执行以下操作,但是我更希望弄清楚反序列化失败的原因。
dynamic jsonResponse = JsonConvert.DeserializeObject(restResponse.Content);
var tagsJArray = jsonResponse.email as JArray;
if (tagsJArray != null)
{
restResponse.Data.EmailAddresses = tagsJArray.ToObject<List<string>>();
}
我以为我缺少JsonProperty属性,但是我尝试过的任何方法都没有用。 任何人都可以帮助阐明这一点吗?
提前致谢。
如果包含EmailAddresses
属性的类的名称为Example
,则应按如下所示反序列化JSON:
var restResponse = await client.ExecuteTaskAsync<Example>(request, cancelToken);
像往常一样,这是一个误解的问题。 我正在使用的客户端最近已切换到RestSharp.RestClient ,但是我们没有更新属性,因此忽略了它们。 一旦我们切换到适当的属性集,该字段就会被正确地反序列化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.