【问题标题】:Deserialize .json in .netcore from firebase (Cannot deserialize the current JSON array (e.g. [1,2,3]))从firebase反序列化.netcore中的.json(无法反序列化当前的JSON数组(例如[1,2,3]))
【发布时间】:2018-07-29 21:07:48
【问题描述】:

我有一个这种格式的 JSON:

{"-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"}]}

还有这个类:

 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 数据实例化该类,这是一个对象列表

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。

Cannot deserialize the current JSON array (e.g. [1,2,3]) into type

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

【问题讨论】:

    标签: c# json firebase asp.net-core json.net


    【解决方案1】:

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

    var data = JsonConvert.DeserializeObject<Dictionary<string, List<Funcionario>>>(teste);
    
    List<Funcionario> list = data.First().Value;
    

    【讨论】:

      猜你喜欢
      • 2014-03-20
      • 1970-01-01
      • 2013-07-19
      • 1970-01-01
      • 1970-01-01
      • 2019-12-27
      相关资源
      最近更新 更多