C# 如何在windows应用商店应用程序c中将json解析为数组列表#

C# 如何在windows应用商店应用程序c中将json解析为数组列表#,c#,json,windows-store-apps,windows-8.1,C#,Json,Windows Store Apps,Windows 8.1,我正在尝试使用c#将json解析为windows应用商店应用程序中的数组 我的json如下 { "catlist": [ { "area_id": "1", "area_name": "Ko", "categories": [ { "cat_id": "1", "cat_name": "Hot", "chk_value":

我正在尝试使用c#将json解析为windows应用商店应用程序中的数组

我的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-array=Newtonsoft.Json.Linq.JArray.Parse(jsonString)

使用WinRT API的类

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

顺便说一句,您的JSON根据


据我所知,这是有效的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; }
}
var Obj=Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString);
公共类子列表
{
公共字符串sub_id{get;set;}
公共字符串子_名称{get;set;}
}
公共类类别
{
公共字符串cat_id{get;set;}
公共字符串cat_name{get;set;}
公共字符串chk_值{get;set;}
公共列表子列表{get;set;}
}
公共类目录
{
公共字符串区域_id{get;set;}
公共字符串区域_name{get;set;}
公共列表类别{get;set;}
}
公共类根对象
{
公共列表catlist{get;set;}
}

我在位置0处收到错误响应无效字符。在Windows.Data.Json.JsonArray.Parse(字符串输入)中,这是因为初始键,正如我所说的,它不是有效的Json,这就是为什么会出现错误。我发布的是有效的JSON,我不确定它是否符合您的要求。@suvishvalsan错误是因为它是JSON对象,而不是JSON数组。您可以对对象使用
JsonObject.Parse()
,或者如果它是一个随机的JSON字符串,并且您不知道它是一个对象、一个数组还是其他东西,请使用
JsonValue.Parse()
。您能建议一种对JSON进行消毒的方法吗