JSON数据就是一段字符串而已json格式解析,只不过有不同意义的分隔符将其分割开来而已json格式解析,我们看上面的符号,里面有[] ,{}等符号,其中

1 []中括号代表的是一个数组;

2 {}大括号代表的是一个对象

3 双引号“”表示的是属性值

4 冒号:代表的是前后之间的关系,冒号前面是属性的名称,后面是属性的值,这个值可以是基本数据类型,也可以是引用数据类型。

一般我们是使用Json.NET做解析。

那么遇到Json中key为数字动态格式怎么解析?

如下

{
    "apps": {
        "570": {
            "228983": {
                "8124929965194586177""available"
            },
            "228990": {
                "1829726630299308803""available"
            },
            "373301": {
                "840315559245085162""available"
            },
            "373302": {
                "688854584180787739""available"
            },
            "373303": {
                "3675525977143063913""available"
            },
            "373305": {
                "4435851250675935801""available"
            },
            "381451": {
                "6984541794104259526""available"
            },
            "381452": {
                "1442783997179322635""available"
            },
            "381453": {
                "6878143993063907778""available"
            },
            "381454": {
                "7824447308675043012""available"
            },
            "381455": {
                "5681120743357195246""available"
            }
        },
        "674940": {
            "674941": {
                "6246860772952658709""available"
            }
        }
    }
}

定义实体

public class AppIds : Dictionary { }
public class DepotId : Dictionary { }
public class ManifestId : Dictionary { }

然后你可以像这样使用 .Json

class Program
{
    static void Main(string[] args)
    {
        string jsonPath = @"c:debugdata.json";
        System.IO.Stream s = new System.IO.FileStream(jsonPath,System.IO.FileMode.Open, System.IO.FileAccess.Read);

        AppIds data = JsonConvert.DeserializeObject<Dictionary>(File.ReadAllText(jsonPath))["apps"];
    }
}

参考

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注