C# 遇到jsonreaderexception意外字符
我有一个使用angular和C#的web项目。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>
在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可以直接从文件流式传输,而无需加载中间字符串表示形式。