首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从firebase反序列化.netcore中的.json (无法反序列化当前的JSON数组(例如[1,2,3]))

从firebase反序列化.netcore中的.json (无法反序列化当前的JSON数组(例如[1,2,3]))
EN

Stack Overflow用户
提问于 2018-07-30 05:07:49
回答 1查看 301关注 0票数 0

我有一个如下格式的JSON:

代码语言:javascript
复制
{"-LIbdaC_Vye-c4eNCxUs":
[
{"area":"XXXXXX","cargo":"XXXXX XXXXX","data_de_admissao":"XXXXXXXX","matricula":"XXXXXX","nome":"XXXXXXX","salario_bruto":"XXXXXXXXX"},
{"area":"XXXXXX","cargo":"XXXXX XXXXX","data_de_admissao":"XXXXXXXX","matricula":"XXXXXX","nome":"XXXXXXX","salario_bruto":"XXXXXXXXX"},
{"area":"XXXXXX","cargo":"XXXXX XXXXX","data_de_admissao":"XXXXXXXX","matricula":"XXXXXX","nome":"XXXXXXX","salario_bruto":"XXXXXXXXX"}]}

还有这个类:

代码语言:javascript
复制
 public class Funcionario
{
    [JsonProperty(PropertyName = "area", NullValueHandling = NullValueHandling.Ignore)]
    public string Area { get; set; }

    [JsonProperty(PropertyName = "cargo", NullValueHandling = NullValueHandling.Ignore)]
    public string Cargo { get; set; }

    [JsonProperty(PropertyName = "data_de_admissao", NullValueHandling = NullValueHandling.Ignore)]
    public string DataAdmissao { get; set; }

    [JsonProperty(PropertyName = "matricula", NullValueHandling = NullValueHandling.Ignore)]
    public string Matricula { get; set; }

    [JsonProperty(PropertyName = "nome", NullValueHandling = NullValueHandling.Ignore)]
    public string Nome { get; set; }

    [JsonProperty(PropertyName = "salario_bruto", NullValueHandling = NullValueHandling.Ignore)]
    public string SalarioBruto { get; set; }
}

我尝试用JSON数据实例化这个类,JSON数据是一个对象列表

代码语言:javascript
复制
dynamic data = JsonConvert.DeserializeObject<dynamic>(teste);
var list = new List<Funcionario>();
foreach (var itemDynamic in data)
{
    list.Add(JsonConvert.DeserializeObject<Funcionario>(((JProperty)itemDynamic).Value.ToString()));
}

它不是从JSON中提取一个元素,而是拯救整个JSON。

代码语言:javascript
复制
Cannot deserialize the current JSON array (e.g. [1,2,3]) into type

我总是收到这个错误,我在这里看到的所有解决方案都不适用于这种类型的JSON

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-30 05:12:33

由于包装对象,您将需要使用字典。

代码语言:javascript
复制
var data = JsonConvert.DeserializeObject<Dictionary<string, List<Funcionario>>>(teste);

List<Funcionario> list = data.First().Value;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51584579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档