2014-01-12 83 views
0

下面的代碼應該從Web服務獲取數據,並將其插入定義的「組」列表中。這是一個Windows 8地鐵應用程序。使用來自服務的JSON數據

HttpClient client = new HttpClient(); 
HttpResponseMessage response = await client.GetAsync(App.DataServiceUrl + "/productcategory"); 
var Groups = new List<GroupList>(); 

if (response.IsSuccessStatusCode) 
{ 
    var content = await response.Content.ReadAsStringAsync(); 
    var prods = JsonConvert.DeserializeObject<dynamic>(content); 
    foreach (var data in prods) 
    { 
     var dataGroup = new GroupList 
       (
       data.term_id, 
        data.name, 
       data.slug, 
        data.description, 
        data.taxonomy 
      ); 
     Groups.Add(dataGroup); 

    } 
} 

組列表:

public class GroupList : SampleDataCommon 
{ 


    public GroupList(String uniqueId, String title, String subtitle, String imagePath, String description) 


: base(uniqueId, title, subtitle, imagePath, description) 

}從業務數據的

一個例子是:

[{"term_id":"64","name":"Argentina","slug":"argentina","term_group":"0","term_taxonomy_id":"64","taxonomy":"product_cat","description":"","parent":"13","count":"20","meta_id":"154","woocommerce_term_id":"64","meta_key":"order","meta_value":"0","cat_ID":"64","category_count":"20","category_description":"","cat_name":"Argentina","category_nicename":"argentina","category_parent":"13"},...] 

但是應用在這裏並不承認JSON值:

data.term_id, 
data.name, 
data.slug, 
data.description, 
data.taxonomy 

相反,當我運行該應用程序我得到這個錯誤:<:

「在分析價值時遇到意外的字符。路徑「,第4行,位置2」

我想從web服務json中獲取term_id,name等的值並在我的應用程序中使用它。我如何做到這一點?我究竟做錯了什麼?我該使用JSON值嗎?

從json2csharp返回:

public class RootObject 
{ 
    public string term_id { get; set; } 
    public string name { get; set; } 
    public string slug { get; set; } 
    public string term_group { get; set; } 
    public string term_taxonomy_id { get; set; } 
    public string taxonomy { get; set; } 
    public string description { get; set; } 
    public string parent { get; set; } 
    public string count { get; set; } 
    public string meta_id { get; set; } 
    public string woocommerce_term_id { get; set; } 
    public string meta_key { get; set; } 
    public string meta_value { get; set; } 
    public string cat_ID { get; set; } 
    public string category_count { get; set; } 
    public string category_description { get; set; } 
    public string cat_name { get; set; } 
    public string category_nicename { get; set; } 
    public string category_parent { get; set; } 
} 
+0

你說'來自Web服務的數據是XML格式的,但使用'JsonConvert.DeserializeObject'。你也說'從新服務返回的數據的一個例子是:'但數據已經在json中。 –

+0

代碼使用XML處理返回的數據的第一個Web服務,但我現在嘗試使用的新服務是使用JSON。我現在試圖使用JSON服務。 – Tester

+0

測試人員,那你爲什麼發佈那些不相關的信息?它與你想要做什麼有什麼關係? –

回答

0

您目前正在使用不同的dataProd屬性參數值所屬分類的新實例。您需要決定從GroupList中派生哪種類型的數據,並用該類型替換CategoryList的實例,並初始化它(通過構造函數或屬性),以便新數據進入組

+0

我很抱歉,那是我的錯誤。請參閱上面的編輯。 – Tester

相關問題