【发布时间】:2015-02-05 17:53:20
【问题描述】:
嗨:我有反序列化 Json 的问题: 这是我的 Json(String):
{[
{
"IdGuid": "fac5d174-17d4-4330-a65e-07133e88e0ca",
"Nombre": "Asignaturas",
"Subtitulo": "Subtitulo de asignaturas",
"Descripcion": "Descripcion de asignaturas",
"urlFoto": "egio1.jpg"
},
[
{
"IdGuid": "a9a59e49-c318-4868-93a9-57347b4c4cad",
"Nombre": "Ciencias Naturales",
"Subtitulo": "",
"Descripcion": "Ciencias",
"urlFoto": "80.jpg"
},
{
"IdGuid": "8ae0dc90-aa6a-4457-8e64-5f591f75416c",
"Nombre": "Documentos",
"Subtitulo": "",
"Descripcion": "",
"urlFoto": "asd.jpg"
},
{
"IdGuid": "2ffbe004-316d-4a82-b4fe-0c43169766ad",
"Nombre": "Inglés",
"Subtitulo": "",
"Descripcion": "",
"urlFoto": "http://pue.jpg"
},
{
"IdGuid": "62151f5c-f503-48a6-9801-c27e92aa240a",
"Nombre": "Matemática",
"Subtitulo": "",
"Descripcion": "",
"urlFoto": "http://pue.jpg"
}
]
]}
这是我的课:
public class Asignatura
{
public String idGuid { get; set; }
public String nombre { get; set; }
public String subtitulo { get; set; }
public String descripcion { get; set; }
public String urlFoto { get; set; }
}
我需要使用 de JSON 生成一个签名列表。我正在尝试
List<Asignatura> listaAsignaturas = new List<Asignatura>();
listaAsignaturas= JsonConvert.DeserializeObject<List<Asignatura>>(json);
但不工作。
- 请帮帮我。
- 我正在使用 Newtonsoft.Json
(编辑) 添加类:
public class rootAsignatura
{
public Asignatura raiz;
public List<Asignatura> listaAsignaturas;
}
并尝试:
rootAsignatura listaAsignaturas = new rootAsignatura();
listaAsignaturas = JsonConvert.DeserializeObject<rootAsignatura>(json);
这继续没有工作。
【问题讨论】:
-
您的 JSON 在顶层包含两个项目:一个
Asignatura对象 + 一个Asignatura对象数组。你能把它的结构改成一个数组吗?这将使您的反序列化代码工作。 -
@MarcinJuraszek 你应该把它作为答案发布:)
-
@MarcinJuraszek 假设他的 JSON 格式是固定的,有没有办法将其反序列化为 2 个元素的列表:第一个元素是
Asignatura,第二个元素是List<Asignatura>? -
我不能删除任何东西,因为是 webService 的响应
标签: c# json class json-deserialization