使用JSON.NET在C#中反序列化此JSON
假设我有以下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
{
"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(行);