json 反序列化jason of objects数组时遇到问题[duplicate]

q8l4jmvw  于 2023-01-10  发布在  其他
关注(0)|答案(1)|浏览(123)
    • 此问题在此处已有答案**:

Deserialize json object with dynamic items in C#(1个答案)
3天前关闭.

{
    "-NL5BmYke6OAh580HEbF": {
        "Adress": "test",
        "ID": "test",
        "Namn": "test",
        "TelefonNummer": "test"
    },
    "-NL5Bncq0GgwLerFXS-v": {
        "Adress": "test1",
        "ID": "test1",
        "Namn": "test1",
        "TelefonNummer": "test1"
    }
}

这是一个json,但是在我想要得到的值之前我有唯一的键值,这些键值给访问里面的json字符串带来了麻烦。
第一个月
这就是我现在试图得到的invudual字符串,然后也再次反序列化,但它不工作。
有人知道解决办法吗?

rxztt3cl

rxztt3cl1#

您可以将输入反序列化为Dictionary<string, Person>(参见下面的示例),输入中的唯一键将成为可通过deserialized.Keys访问的结果字典中的键。

//define class that will serve as Type for values in your dictionary
public class Person
{
    public string ID { get; set; }
    public string Namn { get; set; }
    public string TelefonNummer { get; set; }
    public string Adress { get; set; }
}

//...

var json = "... your input here";

var deserialized = new JavaScriptSerializer().Deserialize<Dictionary<string, Person>>(json);

然后,您可以进一步迭代字典并将Key设置为ID,例如:

var persons = deserialized.Select(kvp =>
{
    var person = kvp.Value;
    person.ID = kvp.Key; // or add another property for this value
    return person;
});

相关问题