【发布时间】:2017-05-18 12:51:51
【问题描述】:
我正在使用以下代码在 Xamarin 中加载 JSON 文件。 JSON 文件是一个简单的文件,其中包含一个人的姓名和年龄。
using (StreamReader r = new StreamReader("First_json.json"))
{
string json = r.ReadToEnd();
P1 = JsonConvert.DeserializeObject<Person>(json);
//MessageBox.Show(P1.name);
}
代码在 c# 中正常工作,但在 Xamarin 中使用 StreamReader 时弹出错误提示无法将字符串转换为流参数。我已经在互联网上搜索了一个更好的方法来读取文件,但到目前为止我还没有成功。
【问题讨论】:
-
此代码适用于 Xamarin。您在哪一行收到此消息? P1 是什么?
-
当我尝试反序列化 Json 时,我得到了异常。 Json 读取为“First_Json.json”,而不是 json 文件的内容。 P1 是 Person 类的对象。类如下: public class Person { public string name;公开年龄;我的 Json 文件的内容是: { "Name": "Umer", "Age": 5 }
-
您能在此处粘贴确切的异常文本吗?
-
异常:Newtonsoft.Json.JsonReaderException:解析值时遇到意外字符:F. 路径“,第 0 行,位置 0。
-
正如我之前提到的,当我尝试直接在流阅读器构造函数中提供文件名时会弹出第一个错误。这就是为什么我现在使用以下代码首先将文件名转换为流类型。 byte[] byteArray = Encoding.UTF8.GetBytes("First_Json.json"); MemoryStream 流 = new MemoryStream(byteArray); StreamReader r = new StreamReader(stream);字符串 json = r.ReadToEnd(); P1 = JsonConvert.DeserializeObject
(json);