我开始学习 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 Controller 将其作为 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 的解释对我没有帮助。
最佳答案
Rick Strahl 有一个关于此的博客 here使用有效的代码。
关于asp.net-mvc - 在 MVC4 项目中使用 Json.NET 序列化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10251664/