从json字符串中提取信息并将其添加到C#中的列表

Sai*_*der 6 .net c# json

我是json的新人.我想要不同用户的信息,并将它们添加到c#(.net development)中的dataGridViewdataTabledataSet中.信息样本是(json有效):

{
    "JrPwbApfIHbQhCUmVIoiVJcPYv93": {
        "address": "Jessore",
        "name": "Dev"
    },
    "iBRZAyn8TQTOgKTcByGOvJjL9ZB3": {
        "address": "Bogra",
        "name": "Kumar Saikat"
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望他们这样:


User1 | 杰索尔| 开发


User2 | Bogra | Kumar Saikat

如果我可以列出所有这些列表,它甚至会有所帮助.

我相信我能够对它们进行反序列化(根本不确定)
var model = JsonConvert.DeserializeObject<user>(json);

用户是一个类.

 public class Item
{

    public string name;
    public string address;

}
Run Code Online (Sandbox Code Playgroud)

这个问题的答案.在本教程中,如果知道属性,我可以获取值.但在我的情况下,我的属性将是未知的,(字符串"User1","User2"将是随机的,因为我将从数据库中获取它们).任何有关此事的帮助和亮点将不胜感激.先感谢您.

Joh*_* Wu 6

您正在查看JSON字典,因此只需将其反序列化:

public static Dictionary<string,Item> ParseJson(string source)
{
    return JsonConvert.DeserializeObject<Dictionary<string,Item>>(source);
}
Run Code Online (Sandbox Code Playgroud)

如果你这样称呼它:

public static void Main()
{
    var input = @"{'JrPwbApfIHbQhCUmVIoiVJcPYv93': {'address': 'Jessore','name': 'Dev' }, 'iBRZAyn8TQTOgKTcByGOvJjL9ZB3': {'address': 'Bogra','name': 'Kumar Saikat'}}";

    var result = ParseJson(input);

    foreach (var r in result)
    {
        Console.WriteLine("Key={0};Name={1};Address={2}", r.Key, r.Value.name, r.Value.address);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是:

Key=JrPwbApfIHbQhCUmVIoiVJcPYv93;Name=Dev;Address=Jessore
Key=iBRZAyn8TQTOgKTcByGOvJjL9ZB3;Name=Kumar Saikat;Address=Bogra
Run Code Online (Sandbox Code Playgroud)

此示例将列表转储到控制台,但您可以轻松修改for循环以添加到列表中.

看看我在DotNetFiddle上的例子