2016-07-26 57 views
0

我找到了一個解決方案,我的主要問題是使用REST填充數據的列表視圖。我找到的示例有一個JSON數組返回。在測試時,有一個錯誤告訴我,我需要一個JSON對象和一個JSON數組。我通過查看Fiddler中返回的數據證實了這一點。有了這些信息,我發現了一些代碼來將響應轉換爲最近發佈的JSON對象。在重寫表類並更改所有代碼時,我一直在理解函數的返回對象。當它是JSON數組時,Return是返回rootoject.Users;在我的情況下,按照相同的語法,它應該是rootobject.Office ;.我想獲得一個.ItemSource返回一個列表視圖的JSON對象

這是從便攜類呼叫:

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; } 
} 

這與響應的JSON反序列化和RESTClient實現類我返回對象:

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
// root object will be a List<OffcObjecct> 
var rootobject = JsonConvert.DeserializeObject<List<OffcObjecct>>(offcsJson); 

在此List每個項目是一個OffcObjecct包含屬性office它返回一個Office[]

我不知道爲什麼你選擇以這種方式構建您的數據 - 但如果您想要返回Office [],這是您的方法簽名所需的,請嘗試

return rootobject[0].office; 
+0

我在正確的道路上,但直到我看到你的迴應,我沒有把它放在一起。你提到;我爲什麼選擇這種方式來構造數據。我對REST和Jason完全陌生。我正在把這些碎片放在一起。你會分享你將如何構建數據?我假設你在談論「公共職類辦公室」。 –

相關問題