C# 如何使用DataContractJsonSerializer解析具有可变键名称的json对象

C# 如何使用DataContractJsonSerializer解析具有可变键名称的json对象,c#,json,C#,Json,我打算使用DataContractJsonSerializer将接收到的json转换为对象,但根中的键可以有任何名称,类似于以下内容: { "Jhon": {...}, "Lucy": {...}, "Robert": {...} ... } 当钥匙固定后,我可以使用[DataMember(Name=“keyname”)],但在这种情况下,我不知道该怎么办。有什么想法吗?试试这个: var serializer = new DataContractJsonSerializer(typeof(R

我打算使用DataContractJsonSerializer将接收到的json转换为对象,但根中的键可以有任何名称,类似于以下内容:

{
"Jhon": {...},
"Lucy": {...},
"Robert": {...}
...
}
当钥匙固定后,我可以使用
[DataMember(Name=“keyname”)]
,但在这种情况下,我不知道该怎么办。有什么想法吗?

试试这个:

var serializer = new DataContractJsonSerializer(typeof(RootObject), new DataContractJsonSerializerSettings()
{
    UseSimpleDictionaryFormat = true
});

var json = @"{
""Jhon"": { ""Name"": ""John""},
""Lucy"": {},
""Robert"": {}
}";
var bytes = Encoding.UTF8.GetBytes(json);
using (var stream = new MemoryStream(bytes))
{
    var results = serializer.ReadObject(stream);
}

// Define other methods and classes here
public class RootObject : Dictionary<string, User>
{
}
public class User
{
    public string Name { get; set; }
}
var serializer=new DataContractJsonSerializer(typeof(RootObject),new DataContractJsonSerializerSettings()
{
UseSimpleDictionaryFormat=true
});
var json=@”{
“Jhon”“:{”“Name”“:”“John”“},
“露西”:{},
“”罗伯特“”:{}
}";
var bytes=Encoding.UTF8.GetBytes(json);
使用(变量流=新内存流(字节))
{
var results=serializer.ReadObject(流);
}
//在此处定义其他方法和类
公共类根对象:字典
{
}
公共类用户
{
公共字符串名称{get;set;}
}
试试这个:

var serializer = new DataContractJsonSerializer(typeof(RootObject), new DataContractJsonSerializerSettings()
{
    UseSimpleDictionaryFormat = true
});

var json = @"{
""Jhon"": { ""Name"": ""John""},
""Lucy"": {},
""Robert"": {}
}";
var bytes = Encoding.UTF8.GetBytes(json);
using (var stream = new MemoryStream(bytes))
{
    var results = serializer.ReadObject(stream);
}

// Define other methods and classes here
public class RootObject : Dictionary<string, User>
{
}
public class User
{
    public string Name { get; set; }
}
var serializer=new DataContractJsonSerializer(typeof(RootObject),new DataContractJsonSerializerSettings()
{
UseSimpleDictionaryFormat=true
});
var json=@”{
“Jhon”“:{”“Name”“:”“John”“},
“露西”:{},
“”罗伯特“”:{}
}";
var bytes=Encoding.UTF8.GetBytes(json);
使用(变量流=新内存流(字节))
{
var results=serializer.ReadObject(流);
}
//在此处定义其他方法和类
公共类根对象:字典
{
}
公共类用户
{
公共字符串名称{get;set;}
}

对象的结构是什么?对象的结构是什么?这样就可以了,谢谢。我希望有更面向对象的东西存在,比如如果你可以自动地将字符串分配给类的属性,比如,你可以用Dictionary和User.Name来代替Dictionary。不管怎样,谢谢你,这帮了大忙,谢谢。我希望有更面向对象的东西存在,比如如果你可以自动地将字符串分配给类的属性,比如,你可以用Dictionary和User.Name来代替Dictionary。无论如何,谢谢你,这帮了大忙