Zaczynam się uczyć Json.NET, ale mam problem z używaniem serializera. Mam nowy projekt MVC4 z usługą Web.API:Używanie serializatora Json.NET w projekcie 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() działa zgodnie z oczekiwaniami i zwraca ciąg znaków. Mój kontroler Web.API zwraca to jako część HttpResponseMessage. Wynik końcowy, patrząc w Skrzypek, nie ma danych JSON, ale dane JSON jest ponownie w odcinkach (chyba):
"{\"ID\":1,\"Name\":\"Talar Tilt\",\"TagID\":1,\"PracticeID\":1,
\"SpecificAreaID\":1,\"TypeID\":1,\"VideoID\":1,\"PicID\":1}"
Czy ktoś wie jak wyłączyć domyślne serializatora tak mogę używać Json.NET bezpośrednio ? Nawiasem mówiąc, nie używam domyślnego serializera, ponieważ nie mogę wymyślić, jak sprawić, by działał on z obiektami złożonymi (PTE_Test ostatecznie będzie zawierał elementy typu List).
Ewentualnie rozwiąże to również mój problem, jeśli ktoś może wyjaśnić, jak używać domyślnego serializera dla złożonych obiektów. Wyjaśnienie MSDN nie pomogło mi.
Jego wskazówka na temat używania obiektu JsonValue była dokładnie tym, czego potrzebowałem. Dzięki! – CraigB
Szybki follow-up: JsonValue pracował dla mnie tylko w Get, ale nie w Put, Post, itd. Więc dodałem format Jick.NET Rick'a i jak na razie działa całkiem nieźle. – CraigB