Estoy empezando a aprender Json.NET, pero tengo problemas para usar su serializador. Tengo un nuevo proyecto MVC4 con un servicio Web.API:Uso del serializador Json.NET en un proyecto MVC4
public class PTE_TestsController : ApiController {
PTE_TestsRepository _repository = new PTE_TestsRepository();
// GET /api/PTE_Tests/5
public HttpResponseMessage<string> Get(int id) {
try {
PTE_Test test = _repository.GetTest(id);
return new HttpResponseMessage<string>(JsonConvert.SerializeObject(test));
} catch {
return new HttpResponseMessage<string>(HttpStatusCode.NotFound);
}
}
}
JsonConvert.SerializeObject() funciona como se espera y devuelve una cadena. Mi controlador Web.API lo devuelve como parte de un HttpResponseMessage. El resultado final, cuando se ve en Fiddler, no es de datos JSON, pero los datos JSON por entregas de nuevo (creo):
"{\"ID\":1,\"Name\":\"Talar Tilt\",\"TagID\":1,\"PracticeID\":1,
\"SpecificAreaID\":1,\"TypeID\":1,\"VideoID\":1,\"PicID\":1}"
¿Alguien sabe cómo apagar el serializador predeterminado para que pueda utilizar directamente Json.NET ? Por cierto, no estoy usando el serializador predeterminado porque no puedo encontrar la manera de hacerlo funcionar con objetos complejos (PTE_Test eventualmente contendrá los miembros del tipo List).
Alternativamente, también resolverá mi problema si alguien puede explicar cómo usar el serializador predeterminado con objetos complejos. La explicación de MSDN no me ayudó.
Su consejo sobre el uso de un objeto JsonValue era exactamente lo que necesitaba. ¡Gracias! – CraigB
Seguimiento rápido: JsonValue solo funcionó para mí en Get, pero no en Put, Post, etc. Así que agregué el formateador Json.NET de Rick y hasta ahora funciona bastante bien. – CraigB