我是json的新人.我想要不同用户的信息,并将它们添加到c#(.net development)中的dataGridView 或dataTable或dataSet中.信息样本是(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"将是随机的,因为我将从数据库中获取它们).任何有关此事的帮助和亮点将不胜感激.先感谢您.
您正在查看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上的例子