我有一个具有以下格式的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
答案 0 :(得分:0)
由于包装对象,您需要使用字典。
var data = JsonConvert.DeserializeObject<Dictionary<string, List<Funcionario>>>(teste);
List<Funcionario> list = data.First().Value;