说我有以下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;
}
我无法让它发挥作用。
答案 0 :(得分:2)
你在班级成员中有几个错别字,但关键部分如下:
看一下JSON文档的开头:
{
"table": [
它实质上意味着您需要一个名为table
的数组属性的对象。
正确的课程是:
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);
答案 1 :(得分:0)
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;
}