我需要将json对象解析为c#类,我的问题是json对象具有嵌套数组,并且在解析时会引发一些错误。
我尝试了几种选择: a)在嵌套数组的元素中执行foreach,并将它们添加到新数组中 b)使用json.deserialize进行解析
到目前为止没有成功
These are my c# classes
public class itemPrediccion
{
public string ClavePartido { get; set; }
public string Ganador { get; set; }
public bool EsFavorito { get; set; }
}
public class Prediccion
{
public ObjectId _id { get; set; }
public string IdUsuario { get; set; }
public int Jornada { get; set; }
public IEnumerable<itemPrediccion> PrediccionesJornada { get; set; }
}
“ Prediccion”类的对象将包含“ itemPrediccion”列表
This is the json object that I want to parse to a "Prediccion" object
{
"IdUsuario" : "user1",
"Jornada" : "1",
"PrediccionesJornada" : [
{
"ClavePartido" : "AP2019J1P1",
"Ganador": "Morelia",
"EsFavorito": "false"
},
{
"ClavePartido" : "AP2019J1P2",
"Ganador": "Chivas",
"EsFavorito": "false"
},
{
"ClavePartido" : "AP2019J1P3",
"Ganador": "Atlas",
"EsFavorito": "true"
}
]
}
这就是我要反序列化的方式
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
dynamic data = JsonConvert.DeserializeObject(requestBody);
Prediccion prediccionUsuario = new Prediccion {
IdUsuario = data.IdUsuario,
Jornada = data.Jornada,
PrediccionesJornada = data.PrediccionesJornada
};
引发此错误:
无法将类型'Newtonsoft.Json.Linq.JArray'隐式转换为 'System.Collections.Generic.IEnumerable'。 存在显式转换(您是否缺少演员表?)
答案 0 :(得分:0)
您应该能够使用解串器的非动态变体:
var result =JsonConvert.DeserializeObject<Prediccion>(requestBody);