我开始学习 Json.NET,但在使用它的序列化程序时遇到了麻烦。我有一个带有 Web.API 服务的新 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() 按预期工作并返回一个字符串。我的 Web.API 控制器将其作为 HttpResponseMessage 的一部分返回。在 Fiddler 中查看的最终结果不是 JSON 数据,而是 JSON 数据再次被序列化(我认为):
"{\"ID\":1,\"Name\":\"Talar Tilt\",\"TagID\":1,\"PracticeID\":1,
\"SpecificAreaID\":1,\"TypeID\":1,\"VideoID\":1,\"PicID\":1}"
有人知道如何关闭默认序列化程序以便我可以直接使用 Json.NET 吗?顺便说一句,我没有使用默认的序列化程序,因为我不知道如何使它与复杂对象一起工作(PTE_Test 最终将包含 List 类型的成员)。
或者,如果有人可以解释如何将默认序列化程序用于复杂对象,它也将解决我的问题。MSDN 的解释对我没有帮助。