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



我有一个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数据实例化这个类,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

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

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

最新更新