使用json.net解析JSON,将数组序列化为属性
问题描述:
我试图以前所未见的方式反序列化json数据。 我正在使用json.net和C#。使用json.net解析JSON,将数组序列化为属性
对应JSON类应该是这样的:
class Example
{
public Person[] data { get; set; }
}
class Person
{
public string Id { get; set; }
public string Nationality { get; set; }
public string Name { get; set; }
}
这是JSON的样子:
{
data: {
"123": ["SWE", "Steve"],
"221": ["USA", "Bob"],
"245": ["CAN", "Susan"]
}
}
是否可以使用属性还是我必须这样做我自己呢?
答
您的变量数据对象(123,221,245)的类型为List<string>()
。
使用JSON.NET,您的模式需要匹配您的数据;类型和名称。
编辑:看着你的Person对象,你的POCO类似乎不正确。你会需要这样的结构:
public Data data { get; set; }
,其中数据是...
public class Data
{
public List<string> 123 { get; set; }
...
}
+3
不,这是无效的。这不是一个字符串列表。但是JSON不是有效的JSON,所以这是无关紧要的。 – mason
+2
无论如何'123'在C#中不是一个有效的名字 –
这不是有效的JSON。首先[确认您有有效的JSON](https://jsonlint.com/)。 – mason
为了澄清,我不控制JSON数据,它是这样。我的问题是,它是可以解析的吗? – Rios
澄清,那不是JSON。你应该联系谁提供这些数据,并告诉他们他们没有生成有效的JSON。 – mason