我确实找到了一个解决我的主要问题的方法,即使用REST用数据填充listview。我找到的样本返回了一个JSON数组。在测试时,有一个错误告诉我我需要一个JSON对象和一个JSON数组。我通过查看Fiddler中返回的数据证实了这一点。有了这些信息,我发现了一些代码,用于将响应从最近的帖子转换为JSON对象。在重写表类并更改所有代码时,我无法理解函数的Return对象。当它是一个JSON数组时,Return返回rootonject.Users;在我的情况下,遵循相同的语法,它应该是rootobject.Office;。
这是来自便携式课程的电话:
var sv = new RestClient();
List.ItemsSource = await sv.getOfficeAsync();
这是JSON对象数据表类:
public class OffcObjecct
{
[JsonProperty("TableName")]
public Office[] office { get; set; }
}
public class Office
{
[JsonProperty("id")]
public string ID { get; set; }
[JsonProperty("OfficeName")]
public string officename { get; set; }
}
这是RESTClient类,其中包含响应的JSON反序列化以及我的返回对象:
public RestClient()
{
}
public async Task<Office[]> getOfficeAsync()
//public async Task<OffcJason> GetOffcAsync()
{
var client = new System.Net.Http.HttpClient();
var uri = "https://application.azurewebsites.net/tables/Tablename?$filter=(field%20eq%20" + Vars.Number + "M)";
client.DefaultRequestHeaders.Add("ZUMO-API-VERSION", "2.0.0");
client.DefaultRequestHeaders.Add("X-ZUMO-AUTH", SessVars.strAuthToken);
client.DefaultRequestHeaders.Add("Accept", "application/json");
var response = await client.GetAsync(uri);
var offcsJson = response.Content.ReadAsStringAsync().Result;
var rootobject = JsonConvert.DeserializeObject<List<OffcObjecct>>(offcsJson);
return rootobject.office;
}
这是我得到的错误: enter image description here
任何帮助将不胜感激......
答案 0 :(得分:0)
// root object will be a List<OffcObjecct>
var rootobject = JsonConvert.DeserializeObject<List<OffcObjecct>>(offcsJson);
此List
中的每个项目都是OffcObjecct
,其中包含一个返回office
Office[]
我不知道您为什么选择以这种方式构建数据 - 但如果您想要返回Office [],这是您的方法签名所需的,请尝试
return rootobject[0].office;