C# 遇到jsonreaderexception意外字符

C# 遇到jsonreaderexception意外字符,c#,json,angularjs,C#,Json,Angularjs,我有一个使用angular和C#的web项目。 在C#控制器中,我希望读入用于测试的本地json文件的内容 这是我从工作目录中读取JSON的代码 string path = HttpContext.Current.Server.MapPath("~/testing/testData.json"); JObject jsonData = JObject.Parse(path); string jsonString = jsonData.ToString(); List<orResult>

我有一个使用angular和C#的web项目。
在C#控制器中,我希望读入用于测试的本地json文件的内容

这是我从工作目录中读取JSON的代码

string path = HttpContext.Current.Server.MapPath("~/testing/testData.json");
JObject jsonData = JObject.Parse(path);
string jsonString = jsonData.ToString();
List<orResult> result = JsonConvert.DeserializeObject<List<orResult>>(jsonString);
return result;
string path=HttpContext.Current.Server.MapPath(“~/testing/testData.json”);
JObject jsonData=JObject.Parse(路径);
字符串jsonString=jsonData.ToString();
列表结果=JsonConvert.DeserializeObject(jsonString);
返回结果;
这里可以看到JSON

当我运行应用程序时,我得到以下错误

在中发生类型为“Newtonsoft.Json.JsonReaderException”的异常 Newtonsoft.Json.dll,但未在用户代码中处理

其他信息:分析时遇到意外字符 值:M.路径“”,第0行,位置0

当我将鼠标悬停在path变量上时,它指向正确的位置。如果我将path变量复制并粘贴到浏览器中,就会看到JSON。错误是由于分析数据或其他原因造成的。。。我不知道。需要帮助

我查看了堆栈上的其他解决方案,但没有一个解决了我的问题。

JObject.Parse()需要实际的JSON内容(字符串),而不是路径

JSON实际上是一个数组,因此可以使用
JArray.Parse()
。此外,将JSON字符串转换为
JObject
,然后再转换回
ToString()
,实际上并没有在这里添加任何“值”


这应该可以做到

string json = File.ReadAllText(HttpContext.Current.Server.MapPath("~/testing/testData.json"));
var result = JsonConvert.DeserializeObject<List<orResult>>(json);
string json=File.ReadAllText(HttpContext.Current.Server.MapPath(“~/testing/testData.json”);
var result=JsonConvert.DeserializeObject(json);

您正在尝试反序列化返回的已翻译的路径(“c:\which\…\testing\testData.json”),即不是文件的内容

请尝试以下方法:

JObject jsonData = JObject.Parse(File.ReadAllText(path));
。。。但是,同样地,不需要使用
Parse()
,因为您不需要
JObject
。只需直接反序列化到
列表

var result = JsonConvert.DeserializeObject<List<orResult>>(File.ReadAllText(path));
var result=JsonConvert.DeserializeObject(File.ReadAllText(path));
使用one可以直接从文件流式传输,而无需加载中间字符串表示形式。