【问题标题】:Reading a json content in Xamarin forms读取 Xamarin 表单中的 json 内容
【发布时间】:2017-06-13 22:00:08
【问题描述】:

我是 Xamarin 表单和 json 的新手,我正在使用 Newtonsoft.Json 反序列化数据

我正在尝试从 json 数据中读取我创建的类名用户列表。

我不确定如何将反序列化连接到类列表中,因为在反序列化之后,我将其放入 var 变量而不是类名用户列表中。

将在下面附上一个如何修复我的代码的代码示例:

谢谢。

json 看起来像这样:

[{"Id":"0","userPhone":"000000","userName":"Barak","Conferance_ID":"1"}]

附上我的代码:

public async Task<List<User>>  GetUserList(string textBox)
    {
        // Use https to satisfy iOS ATS requirements.
        var client = new HttpClient();
        var response = await client.GetAsync("http://conferencecreating-com.stackstaging.com/UsersWebService.php");
        var responseString = await response.Content.ReadAsStringAsync();
        var JsonObject  = JsonConvert.DeserializeObject (responseString);
           // want to add here how loop the jason object?

    }

这是我为插入数据而创建的类

 public class User
{
    public int ID { get; set; }
    public string userPhone { get; set; }
    public string userName { get; set; }
    public int Conferance_ID { get; set; }
}

【问题讨论】:

    标签: c# json xamarin xamarin.forms json.net


    【解决方案1】:

    改变这一行:

    var JsonObject  = JsonConvert.DeserializeObject (responseString);
    

    到这里:

    var userList = JsonConvert.DeserializeObject<List<User>>(responseString);
    

    要遍历用户,只需像往常一样使用foreach 循环:

    foreach (User user in userList)
    {
        ...
    }
    

    【讨论】:

      【解决方案2】:

      试试这样的:

          List<User> Users;
          using (var client = new HttpClient())
             try
             {
                 string url = "http://conferencecreating-com.stackstaging.com/UsersWebService.php";
                 var response = await client.GetAsync(url);
                 response.EnsureSuccessStatusCode();
      
                 var stringResult = await response.Content.ReadAsStringAsync();
                 Users = JsonConvert.DeserializeObject<List<User>>(stringResult);
             }
             catch (HttpRequestException httpRequestException)
             {
                 Users = null;
             }
      

      确保告诉 DeserializeObject 你想匹配哪个类/对象。请享用!

      编辑:感谢 Rufo 爵士的评论,我已经修复了代码

      【讨论】:

      • json 文档是一个用户对象数组。将其反序列化为 List
      猜你喜欢
      • 2011-09-14
      • 2016-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多