Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Json.NET无法反序列化列表<;字符串>;来自JSON数组_C#_Json_Json.net - Fatal编程技术网

C# Json.NET无法反序列化列表<;字符串>;来自JSON数组

C# Json.NET无法反序列化列表<;字符串>;来自JSON数组,c#,json,json.net,C#,Json,Json.net,我在反序列化带有JSON.net的反序列化对象的属性时遇到问题。JSON格式正确,可以使用DeserializeObject提取并访问动态属性,但当我从模型中反序列化时,属性始终为null 我使用的是JSON.net的v10 所述财产的定义如下: [JsonProperty(PropertyName = "email")] public List<string> EmailAddresses { get; set; } 当我反序列化对象及其类型时,即 var r

我在反序列化带有JSON.net的反序列化对象的属性时遇到问题。JSON格式正确,可以使用DeserializeObject提取并访问动态属性,但当我从模型中反序列化时,属性始终为null

我使用的是JSON.net的v10

所述财产的定义如下:

    [JsonProperty(PropertyName = "email")]
    public List<string> EmailAddresses { get; set; }  
当我反序列化对象及其类型时,即

var restResponse = await client.ExecuteTaskAsync<T>(request, cancelToken);
var restreponse=await client.ExecuteTaskAsync(请求,取消令牌);
属性为空

我可以做到以下几点,但我更愿意找出反序列化失败的原因

dynamic jsonResponse = JsonConvert.DeserializeObject(restResponse.Content);
var tagsJArray = jsonResponse.email as JArray;
if (tagsJArray != null)
{
    restResponse.Data.EmailAddresses = tagsJArray.ToObject<List<string>>();
}
dynamic jsonResponse=JsonConvert.DeserializeObject(restResponse.Content);
var tagsJArray=jsonResponse.email作为JArray;
if(tagsJArray!=null)
{
resresponse.Data.EmailAddresses=tagsJArray.ToObject();
}
我假设我缺少了一个JsonProperty属性,但我尝试过的任何东西都不起作用。有人能帮忙解释一下吗


提前谢谢

如果包含
EmailAddresses
属性的类的名称是
Example
,则应按如下方式反序列化JSON:

var restResponse = await client.ExecuteTaskAsync<Example>(request, cancelToken);
var restreponse=await client.ExecuteTaskAsync(请求,取消令牌);

与往常一样,这是一个误解的问题。我使用的客户端最近已切换到,但我们没有更新属性,它们被忽略。一旦我们切换到正确的属性集,该字段将被正确反序列化。

这可能会帮助您:和实时示例:您能否将您的问题扩展到完整的显示您的根类型以及如何构造
客户端
?我试着重现你的问题,一切似乎都很好。你只是在email属性或所有其他属性上得到null吗?我正在按照dbc(谢谢,顺便说一句)处理最小完整和可验证的示例。Arman-所有其他属性都在反序列化,没有问题。哦,你的
客户机实际上是吗?因为RestSharp so
[JsonProperty(…)]
将不起任何作用。
var restResponse = await client.ExecuteTaskAsync<Example>(request, cancelToken);