没有服务参考的项目。错误:类型“Newtonsoft.Json.Linq.JToken”是不支持的递归集合数据协定。

Sch*_*zIT 5 asp.net-web-api visual-studio-2013

我正在尝试编写一个包含 newtonsoft JSON.net 组件的 Web API。

我的代码非常简单:

     public object GetJsonFile(int id = 1) {
        using (StreamReader r = new StreamReader(myJsonFile)) {
            string json;

        //    todo: build logic to only grab latest when an id is supplied
        json = r.ReadToEnd();

        object jsonObject = JsonConvert.DeserializeObject(json);
        return jsonObject;
       }
Run Code Online (Sandbox Code Playgroud)

测试页面时,我收到可怕的“类型‘Newtonsoft.Json.Linq.JToken’是不支持的递归集合数据协定。请考虑修改集合‘Newtonsoft.Json.Linq.JToken’的定义以删除对本身。” 错误。

我已经完成了我的挖掘工作,每个人似乎都建议取消选中“在所有引用的程序集中重用类型”,但这似乎只在服务引用的情况下使用,而我的项目不使用它。我确实找到了执行此操作的地方,但由于我没有可供引用的服务,因此无法配置它。

我对 Visual Studio 不太熟悉,所以请对我宽容一点;)

Sch*_*zIT 2

我一直不知道如何回避这个问题。我最终所做的是将 JSON 中的实体创建为类,然后让 JSON.NET 将 JSON 反序列化为类。