我正在尝试使用JSON.Net加载本地存储在ASP.Net MVC 4站点上的JSON文件,但是在指向该文件时遇到问题。这是我想要做的:
List<Treatment> treatments = JsonConvert.DeserializeObject<List<Treatment>>(Server.MapPath("~/Content/treatments.json"));
我遇到了这个错误:
An exception of type 'Newtonsoft.Json.JsonReaderException' occurred in Newtonsoft.Json.dll but was not handled in user code
Additional information: Unexpected character encountered while parsing value: c. Path '', line 0, position 0.
我应该做些什么?
答案 0 :(得分:26)
您需要先使用FileStream
读取JSON。
试试这个。
using(StreamReader sr = new StreamReader(Server.MapPath("~/Content/treatments.json")))
{
treatments = JsonConvert.DeserializeObject<List<Treatment>>(sr.ReadToEnd());
}
答案 1 :(得分:9)
您将路径和文件名作为JSON有效内容传递。您需要打开文件(例如FileStream
)并将内容读入变量(例如StreamReader
)并将文件内容作为有效负载传递给解串器。