Я пытаюсь десериализовать строку json в новый список на C# с помощью json.net.Как десериализовать Json Array в другой объект?
Когда я делаю прямую десериализацию, я получаю некоторые атрибуты как null, потому что у меня есть разные объекты в моем списке.
Так что я хочу создать «переводчик» для этой задачи, создав общие объекты и установив атрибуты моих объектов.
это мой прогресс ..
CitasProfesorWeb.JavaService.AgendaWSService service =
new JavaService.AgendaWSService();
JsonTextReader reader;
private void cargaDatos()
{
String lista = service.obtenerCitasNuevas(2);
reader = new JsonTextReader(new StringReader(lista));
while (reader.Read())
{
//here i want to read the attributes or objects
}
}
я попытался с помощью JsonConvert.PopulateObject (читатель, Читинская), но я получаю сообщение об ошибке о том, что у меня есть недопустимые параметры.
--Edit--
Это строка, что я получаю:
[{"idCita":6,"fechaSolicitud":"2012/4/20","fechaCita":"2012/4/19","horario":{"idHorario":1,"fechaInicio":"2012/1/16","fechaHoy":1337281297199,"fechaFin":"2012/5/30","nombre":"Enero-Mayo 2012","profesor":{"idProfesor":2, "nombre":"Guillermo", "apellido":"Salazar", "nomUsuario":"g.salazar", "email":"[email protected]", "ubicacion":"LV323", "descripcion":"Profesor Interino"}},"alumno":{"idAlumno":1, "nombre":"Jhonatan", "apellido":"Romero", "nomUsuario":" jromero", "email":"jhonatanromgggggh", "carrera":"LSIA" },"asunto":"asesorias","status":"0","horaCita":"10:0"}, {"idCita":7,"fechaSolicitud":"2012/4/20","fechaCita":"2012/4/27","horario":{"idHorario":1,"fechaInicio":"2012/1/16","fechaHoy":1337281297199,"fechaFin":"2012/5/30","nombre":"Enero-Mayo 2012","profesor":{"idProfesor":2, "nombre":"Guillermo", "apellido":"Salazar", "nomUsuario":"g.salazar", "email":"[email protected]", "ubicacion":"LV323", "descripcion":"Profesor Interino"}},"alumno":{"idAlumno":1, "nombre":"Jhonatan", "apellido":"Romero", "nomUsuario":" jromero", "email":"jhonatanromgggggh", "carrera":"LSIA" },"asunto":"asesorias","status":"0","horaCita":"11:0"}, {"idCita":11,"fechaSolicitud":"2012/4/20","fechaCita":"2012/4/20","horario":{"idHorario":1,"fechaInicio":"2012/1/16","fechaHoy":1337281297199,"fechaFin":"2012/5/30","nombre":"Enero-Mayo 2012","profesor":{"idProfesor":2, "nombre":"Guillermo", "apellido":"Salazar", "nomUsuario":"g.salazar", "email":"[email protected]", "ubicacion":"LV323", "descripcion":"Profesor Interino"}},"alumno":{"idAlumno":1, "nombre":"Jhonatan", "apellido":"Romero", "nomUsuario":" jromero", "email":"jhonatanromgggggh", "carrera":"LSIA" },"asunto":"asesorias","status":"0","horaCita":"17:0"}, {"idCita":12,"fechaSolicitud":"2012/4/27","fechaCita":"2012/5/3","horario":{"idHorario":1,"fechaInicio":"2012/1/16","fechaHoy":1337281297199,"fechaFin":"2012/5/30","nombre":"Enero-Mayo 2012","profesor":{"idProfesor":2, "nombre":"Guillermo", "apellido":"Salazar", "nomUsuario":"g.salazar", "email":"[email protected]", "ubicacion":"LV323", "descripcion":"Profesor Interino"}},"alumno":{"idAlumno":1, "nombre":"Jhonatan", "apellido":"Romero", "nomUsuario":" jromero", "email":"jhonatanromgggggh", "carrera":"LSIA" },"asunto":"tesis","status":"0","horaCita":"12:0"}, {"idCita":15,"fechaSolicitud":"2012/5/11","fechaCita":"2012/4/20","horario":{"idHorario":1,"fechaInicio":"2012/1/16","fechaHoy":1337281297200,"fechaFin":"2012/5/30","nombre":"Enero-Mayo 2012","profesor":{"idProfesor":2, "nombre":"Guillermo", "apellido":"Salazar", "nomUsuario":"g.salazar", "email":"[email protected]", "ubicacion":"LV323", "descripcion":"Profesor Interino"}},"alumno":{"idAlumno":1, "nombre":"Jhonatan", "apellido":"Romero", "nomUsuario":" jromero", "email":"jhonatanromgggggh", "carrera":"LSIA" },"asunto":"Tesis","status":"0","horaCita":"10:0"}]
Это мой класс:
public class Cita
{
Profesor profesor;
public Profesor Profesor
{
get { return profesor; }
set { profesor = value; }
}
Alumno alumno;
public Alumno Alumno
{
get { return alumno; }
set { alumno = value; }
}
DateTime inicioCita;
public DateTime InicioCita
{
get { return inicioCita; }
set { inicioCita = value; }
}
String asunto;
public String Asunto
{
get { return asunto; }
set { asunto = value; }
}
String lugar;
public String Lugar
{
get { return lugar; }
set { lugar = value; }
}
int status;
public int Status
{
get { return status; }
set { status = value; }
}
DateTime fechaSolicitud;
public DateTime FechaSolicitud
{
get { return fechaSolicitud; }
set { fechaSolicitud = value; }
}
}
как комментарий, я очень новый, используя Json, я сделал несколько тестов десериализации простых объектов, но на этом объекте json у меня есть объекты, вложенные – rafuru
Можете ли вы опубликовать свой класс и строку json? –
Я только что обновил свой вопрос :) – rafuru