Xamarin在变量

时间:2016-09-05 14:43:28

标签: json xamarin portable-class-library

我有我的代码,我从网址获取数据并使用json解析该数据。

public async void GetItems()
    {
        HttpResponseMessage response = new HttpResponseMessage();
        HttpClient httpclient = new HttpClient();
        Uri uri = new Uri("URL");

        response = await httpclient.GetAsync(uri);
        if (response.IsSuccessStatusCode)
        {
            var JsonContent = await response.Content.ReadAsStringAsync();

            JArray jArray = JArray.Parse(JsonContent);

            foreach (var data in jArray)
            {
                var latitude = data["latitude"];
                Console.WriteLine(latitude);
            }

        }
    }

在此代码中,我获取了所有数据并将其打印到控制台中。

我有一个包含我想设置的变量的类

public class FetchedObjects
{
    public string name { get; set; }
    public double latitude { get; set; }
    public double longitude { get; set; }

}

如何将jArray中的每个数据存储到这些变量中?我想从我的ios或android项目访问这些。

修改 我在json中有一些值,它们是null。在创建列表时如何处理这些?我的应用程序崩溃,它说:

  

将值设置为' valuename'在' App.FetchedObjects'

1 个答案:

答案 0 :(得分:1)

尝试代码:

 List<FetchedObjects> list = jArray.ToObject<List<FetchedObjects>>();

修改

在pcl库中创建类:

 public class YourClass
 {
    public async  Task<List<FetchedObjects>> GetItems()
    {
       ....
       if(jArray != null)
       {
          List<FetchedObjects> list = jArray.ToObject<List<FetchedObjects>>();
          return list;
       }
       else
       {
          return null;
       }  
    ...
 } 

在你的ios和android项目中添加对pcl库的引用,并使用class YourClass