web-dev-qa-db-ja.com

ローカルに保存されているファイルからJSONを読み取るにはどうすればよいですか?

JSON.Netを使用してASP.NetMVC 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.

私は何を変えるべきですか?

10
drewwyatt

最初にFileStreamを使用してJSONを読み込む必要があります。

これを試して。

using(StreamReader sr = new StreamReader(Server.MapPath("~/Content/treatments.json")))
{
      treatments = JsonConvert.DeserializeObject<List<Treatment>>(sr.ReadToEnd());
}
26
SlightlyMoist

JSONペイロードとしてパスとファイル名を渡します。ファイル(例:FileStream)を開き、内容を変数(例:StreamReader)に読み込み、ファイルの内容をペイロードとしてデシリアライザーに渡す必要があります。

9
Sam Axe