【问题标题】:Loading JSON file in Xamarin在 Xamarin 中加载 JSON 文件
【发布时间】: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);

标签: json xamarin


【解决方案1】:

试试这个,

将 JSON 文件添加到项目的 Asset 文件夹中

示例:{"Age":30,"Name":"testuser"}

然后像这样阅读

using (var reader = new StreamReader(Assets.Open("First_json.txt")))
{
    var jsonData = reader.ReadToEnd();
    var questionsList = JsonConvert.DeserializeObject<Person>(jsonData);
}

【讨论】:

    【解决方案2】:

    提供您的 First_json 文件,扩展名为 .json "First_json.json"。

    你的班级应该是这样的:

    public class Person
    {
        public int Age { get; set; }
        public string Name { get; set; }
    }
    

    现在它可以工作了。让我知道你的结果。

    【讨论】:

      猜你喜欢
      • 2017-09-23
      • 1970-01-01
      • 2017-04-03
      • 2017-10-15
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-15
      相关资源
      最近更新 更多