使用JSON.NET在C#中反序列化此JSON

使用JSON.NET在C#中反序列化此JSON,c#,json,json.net,C#,Json,Json.net,假设我有以下JSON文档: { "table": [ { "wiki": "http://en.wikipedia.org/wiki/Period%201%20element", "elements": [ { "group": "", "position": 0, "nam

假设我有以下JSON文档:

{
    "table": [
        {
            "wiki": "http://en.wikipedia.org/wiki/Period%201%20element",
            "elements": [
                {
                    "group": "",
                    "position": 0,
                    "name": "Hydrogen",
                    "number": 1,
                    "small": "H",
                    "molar": 1.00794,
                    "electrons": [
                        1
                    ]
                },
                {
                    "group": "Element Noble p",
                    "position": 17,
                    "name": "Helium",
                    "number": 2,
                    "small": "He",
                    "molar": 4.002602,
                    "electrons": [
                        2
                    ]
                }
            ]
        },
        {
            "wiki": "http://en.wikipedia.org/wiki/Period%202%20element",
            "elements": [
                {
                    "group": "Element Alkali s",
                    "position": 0,
                    "name": "Lithium",
                    "number": 3,
                    "small": "Li",
                    "molar": 6.941,
                    "electrons": [
                        2,
                        1
                    ]
                },
                {
                    "group": "Element Alkaline s",
                    "position": 1,
                    "name": "Beryllium",
                    "number": 4,
                    "small": "Be",
                    "molar": 9.012182,
                    "electrons": [
                        2,
                        2
                    ]
                },
                {
                    "group": "Element Metalloid Boron p",
                    "position": 12,
                    "name": "Boron",
                    "number": 5,
                    "small": "B",
                    "molar": 10.811,
                    "electrons": [
                        2,
                        3
                    ]
                },
                {
                    "group": "Element Nonmetal Carbon p",
                    "position": 13,
                    "name": "Carbon",
                    "number": 6,
                    "small": "C",
                    "molar": 12.0107,
                    "electrons": [
                        2,
                        4
                    ]
                },
                {
                    "group": "Element Nonmetal Pnictogen p",
                    "position": 14,
                    "name": "Nitrogen",
                    "number": 7,
                    "small": "N",
                    "molar": 14.0067,
                    "electrons": [
                        2,
                        5
                    ]
                },
                {
                    "group": "Element Nonmetal Chalcogen p",
                    "position": 15,
                    "name": "Oxygen",
                    "number": 8,
                    "small": "O",
                    "molar": 15.9994,
                    "electrons": [
                        2,
                        6
                    ]
                },
                {
                    "group": "Element Halogen p",
                    "position": 16,
                    "name": "Fluorine",
                    "number": 9,
                    "small": "F",
                    "molar": 18.998404,
                    "electrons": [
                        2,
                        7
                    ]
                },
                {
                    "group": "Element Noble p",
                    "position": 17,
                    "name": "Neon",
                    "number": 10,
                    "small": "Ne",
                    "molar": 20.1797,
                    "electrons": [
                        2,
                        8
                    ]
                }
            ]
        }
。。。它继续下去

如何将此JSON反序列化为名为Element的类?如果愿意,可以忽略“wiki”字段

我尝试过的:

Table t = JsonConvert.DeserializeObject<Table> (lines);

class Table {
    public string wiki;
    public Element[] element;
}

class Element {
    public string group, name, small;
    public int position, numer;
    public double molar;
    public int[] electrons;
}
表t=JsonConvert.DeserializeObject(行);
类表{
公共字符串wiki;
公共元素[]元素;
}
类元素{
公共字符串组,名称,小;
公共整数位置,数字;
公共双磨牙;
公共int[]电子;
}
我无法让它工作。

Parent=JsonConvert.DeserializeObject(行);
Parent = JsonConvert.DeserializeObject<Parent> (lines);

class Parent {
    public Mid[] table;
}

class Mid {
    public string wiki;
    public Element[] elements;
}

class Element {
    public string group, name, small;
    public int position, numer;
    public double molar;
    public int[] electrons;
}
班级家长{ 公共Mid[]表; } 中级班{ 公共字符串wiki; 公共要素[]要素; } 类元素{ 公共字符串组,名称,小; 公共整数位置,数字; 公共双磨牙; 公共int[]电子; }
您在类成员中有几个输入错误,但关键部分如下所示:

看看JSON文档的开头:

{
    "table": [
它本质上意味着您需要一个名为
table
的具有array属性的对象

正确的类别包括:

class Root
{
    public Table[] table;
}

class Table
{
    public string wiki;
    public Element[] elements;
}

class Element
{
    public string group, name, small;
    public int position, number;
    public double molar;
    public int[] electrons;
}
以及反序列化代码:

var root = JsonConvert.DeserializeObject<Root>(lines);
var root=JsonConvert.DeserializeObject(行);