说我有以下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的序列化为称为元素的类?如果您愿意,可以忽略" 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;
}
我无法工作。
您在类成员中有几个错别字,但必不可少的部分如下:
看一下JSON文档的开头:
{
"table": [
本质上意味着您需要一个具有 array 属性的对象,称为 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);
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;
}