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

标签 c# .net json

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

{
    "JrPwbApfIHbQhCUmVIoiVJcPYv93": {
        "address": "Jessore",
        "name": "Dev"
    },
    "iBRZAyn8TQTOgKTcByGOvJjL9ZB3": {
        "address": "Bogra",
        "name": "Kumar Saikat"
    }
}

我希望他们像这样:


用户1 |杰 Solr |开发


用户2 |博格拉 |库马尔赛卡特

如果我能为所有这些列出一个列表,那将会有所帮助。

我相信我能够通过
反序列化它们(完全不确定) var model = JsonConvert.DeserializeObject<user>(json);

其中 user 是一个类。

 public class Item
{

    public string name;
    public string address;

}

来自 this question-answer .来自 this tutorial如果属性已知,我能够获得值。但在我的情况下,我的属性是未知的(字符串“User1”、“User2”将是随机的,因为我将从数据库中获取它们)。对此事的任何帮助和启发将不胜感激。先感谢您。

最佳答案

您正在查看 JSON 字典,因此只需反序列化它即可:

public static Dictionary<string,Item> ParseJson(string source)
{
    return JsonConvert.DeserializeObject<Dictionary<string,Item>>(source);
}

如果你这样调用它:

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);
    }
}

输出是:

Key=JrPwbApfIHbQhCUmVIoiVJcPYv93;Name=Dev;Address=Jessore
Key=iBRZAyn8TQTOgKTcByGOvJjL9ZB3;Name=Kumar Saikat;Address=Bogra

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

请参阅我在 DotNetFiddle 上的示例

关于c# - 从 json 字符串中提取信息并将其添加到 C# 中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51489048/

相关文章:

c# - _=> 这个下划线在 Lambda 表达式中是什么意思?

.net - CI 服务器比较?

c# - Visual Studio 即时窗口 - 不允许使用 Lambda 表达式 - 是否有解决方法或替代方法?

java - 从android解析jsonObject并在webservice vb.net中获取它

c# - 单击提交按钮后保持对话框(?)打开

c# - Entity Framework Core 使用 Unique 检查添加多行

c# - 如何从键盘移动 TableLayoutPanel 网格中的 PictureBox?

.net - 如何停止 dotnet pack 在 azure devops 中构建项目(--no-build 没有效果)

javascript - 对象的 JSON 数组。根据名称对对象值进行分组

java - 带有嵌套 JSON 的 REST