我是 json 的新手。我想要不同用户的信息,并将它们添加到 c#(.net 开发)中的 dataGridView 或 dataTable 或 dataSet。信息样本为(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/