asp.net-mvc - 在 MVC4 项目中使用 Json.NET 序列化器

标签 asp.net-mvc serialization asp.net-web-api json.net

我开始学习 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/

相关文章:

javascript - 将列表中的项目循环到 Controller 中的 ViewBag 中

c# - 如何查询 Kendo MVVM Treeview 模型

angularjs - 带有 Angular2 的 ASP MVC Web api - Http header 访问控制

jquery - 向 MVC HTML 帮助器添加多个类标签

c# - 无法从 ASP.NET MVC 中的 IEnumerable 获取 JSON

C++ 将 std::map 序列化为文件

serialization - 如何将 C# 中现有的 POCO 类转换为 google Protobuf 标准 POCO

java - 使用类字段中指定的自定义反序列化器反序列化字符串

c# - 使用 restsharp 反序列化 json 字符串

c# - 通过 HttpClient 发布文件时 HttpRequest.Files 为空