2013-10-08 37 views
1

我想解析json數組在Windows應用商店使用c#。如何解析json數組列表中的Windows應用商店應用c#

我的JSON是如下

{ 
"catlist": [ 
    { 
     "area_id": "1", 
     "area_name": "Ko", 
     "categories": [ 
      { 
       "cat_id": "1", 
       "cat_name": "Hot", 
       "chk_value": "2", 
       "sublist": [ 
        { 
         "sub_id": "5", 
         "sub_name": "Beach" 
        }, 
        { 
         "sub_id": "6", 
         "sub_name": "Beach" 
        }, 
        { 
         "sub_id": "7", 
         "sub_name": "Beach" 
        } 
       ] 
      }, 
      { 
       "cat_id": "2", 
       "cat_name": "Dining", 
       "chk_value": "1", 
       "sublist": [ 
        { 
         "sub_id": "1", 
         "sub_name": "Road" 
        }, 
        { 
         "sub_id": "2", 
         "sub_name": "Soi " 
        } 
       ] 
      }]} 

是什麼把它解析成JSON元素的數組,並用它進行數據綁定

+0

http://json.net –

回答

0

最簡單的方式使用Json.Net

var array = Newtonsoft.Json.Linq.JArray.Parse(jsonString);

使用WinRT API的JsonArray

var array = Windows.Data.Json.JsonArray.Parse(jsonString);

順便說一句,你的JSON根據JSON Lint


據對我來說,這是有效的JSON陣列

[ 
    { 
     "catlist": [ 
      { 
       "area_id": "1", 
       "area_name": "Ko", 
       "categories": [ 
        { 
         "cat_id": "1", 
         "cat_name": "Hot", 
         "chk_value": "2", 
         "sublist": [ 
          { 
           "sub_id": "5", 
           "sub_name": "Beach" 
          }, 
          { 
           "sub_id": "6", 
           "sub_name": "Beach" 
          }, 
          { 
           "sub_id": "7", 
           "sub_name": "Beach" 
          } 
         ] 
        }, 
        { 
         "cat_id": "2", 
         "cat_name": "Dining", 
         "chk_value": "1", 
         "sublist": [ 
          { 
           "sub_id": "1", 
           "sub_name": "Road" 
          }, 
          { 
           "sub_id": "2", 
           "sub_name": "Soi " 
          } 
         ] 
        } 
       ] 
      } 
     ] 
    } 
] 

如果要反序列化JSON是無效的,你應該喜歡這個。

var Obj = Newtonsoft.Json.JsonConvert.DeserializeObject<RootObject[]>(jsonString); 

public class Sublist 
{ 
    public string sub_id { get; set; } 
    public string sub_name { get; set; } 
} 

public class Category 
{ 
    public string cat_id { get; set; } 
    public string cat_name { get; set; } 
    public string chk_value { get; set; } 
    public List<Sublist> sublist { get; set; } 
} 

public class Catlist 
{ 
    public string area_id { get; set; } 
    public string area_name { get; set; } 
    public List<Category> categories { get; set; } 
} 

public class RootObject 
{ 
    public List<Catlist> catlist { get; set; } 
} 
+0

我得到錯誤響應無效字符爲0 位置Windows.Data.Json.JsonArray.Parse(字符串輸入)是因爲它的初始密鑰 –

+0

的正如我所說的這不是有效的JSON,這就是爲什麼你會收到錯誤。我張貼有效的JSON,我不確定根據您的要求它是否正確。 – Xyroid

+1

@suvishvalsan錯誤是因爲這是一個JSON對象,而不是一個JSON數組。你可以使用'JsonObject.Parse()'作爲對象,或者如果它是一個隨機的JSON字符串,並且你不知道它是一個對象,一個數組還是其他的東西,可以使用'JsonValue.Parse()'。 – kiewic

相關問題