C# JsonConvert.DeserializeObject用于具有不同键名的json
我正在尝试将Json.Net转换器用于这个奇怪的Json:C# JsonConvert.DeserializeObject用于具有不同键名的json,c#,json,json.net,C#,Json,Json.net,我正在尝试将Json.Net转换器用于这个奇怪的Json: { "Key1": { "id": "1", "name": "one" }, "Key2": { "id": "2", "name": "two" }, ... "CouldBeAnything": { "id": "n", "name": "CouldBeAnything" } } 如果我使用json-to-xml源代码生成,我会得到具有名为Key1、Key2等属性的对象。这不起作用
{
"Key1": {
"id": "1",
"name": "one"
},
"Key2": {
"id": "2",
"name": "two"
},
...
"CouldBeAnything": {
"id": "n",
"name": "CouldBeAnything"
}
}
如果我使用json-to-xml源代码生成,我会得到具有名为Key1、Key2等属性的对象。这不起作用,因为我需要这些键和与它们相关联的值的列表。有没有办法创建一个可以直接序列化的对象?提前谢谢 您可以这样做:
class Class1
{
public string id { get; set; }
public string name { get; set; }
}
static void Main(string[] args)
{
var d = new Dictionary<string, Class1>();
d.Add("Key1", new Class1() { id = "1", name = "one" });
d.Add("Key2", new Class1() { id = "2", name = "two" });
d.Add("CouldBeAnything", new Class1() { id = "n", name = "CouldBeAnything" });
var json = JsonConvert.SerializeObject(d, Formatting.Indented);
}
Class1类
{
公共字符串id{get;set;}
公共字符串名称{get;set;}
}
静态void Main(字符串[]参数)
{
var d=新字典();
d、 添加(“Key1”,newclass1(){id=“1”,name=“one”});
d、 添加(“Key2”,newclass1(){id=“2”,name=“two”});
d、 添加(“CouldBeAnything”,new Class1(){id=“n”,name=“CouldBeAnything”});
var json=JsonConvert.serialized对象(d,Formatting.Indented);
}
使用字典,如解释或所示。非常感谢!!