为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
胡说叔叔 2021-10-24 17:14:45
我是 json 的新手。我想要不同用户的信息,并将它们添加到c#(.net 开发)中的dataGridView 或dataTable或dataSet。信息样本为(json有效):{    "JrPwbApfIHbQhCUmVIoiVJcPYv93": {        "address": "Jessore",        "name": "Dev"    },    "iBRZAyn8TQTOgKTcByGOvJjL9ZB3": {        "address": "Bogra",        "name": "Kumar Saikat"    }}我想要他们这样:用户 1 | 杰索尔 | 开发用户 2 | 博格拉 | 库马尔·赛卡特如果我能为所有人列出一份清单,那也会有所帮助。我相信我能够反序列化它们(完全不确定)var model = JsonConvert.DeserializeObject<user>(json);其中用户是一个类。 public class Item{    public string name;    public string address;}从这个问答。如果属性已知,我可以从本教程中获取值。但在我的情况下,我的属性将是未知的(字符串“User1”、“User2”将是随机的,因为我将从数据库中获取它们)。对此问题的任何帮助和启发将不胜感激。先感谢您。
查看完整描述

3 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

反序列化的正确方法如下


var model = JsonConvert.DeserializeObject<Dictionary<string, Item>>(data);

在您发布的代码示例中,您的“ user ”类名称是Item但您正尝试在代码中使用“ User ”进行反序列化。另请注意,您不能直接将数据反序列化到用户列表中,因为它作为一些随机字符串的值存在。


var model = JsonConvert.DeserializeObject<user>(json);

为了让您的代码正确反序列化,您的 json 格式应如下所示:


{

{

    "address": "Jessore",

    "name": "Dev"

},

{

    "address": "Bogra",

    "name": "Kumar Saikat"

}

}


查看完整回答
反对 回复 2021-10-24
?
Helenr

TA贡献1780条经验 获得超4个赞

反序列化的正确方法如下


var model = JsonConvert.DeserializeObject<Dictionary<string, Item>>(data);

在您发布的代码示例中,您的“ user ”类名称是Item但您正尝试在代码中使用“ User ”进行反序列化。另请注意,您不能直接将数据反序列化到用户列表中,因为它作为一些随机字符串的值存在。


var model = JsonConvert.DeserializeObject<user>(json);

为了让您的代码正确反序列化,您的 json 格式应如下所示:


{

{

    "address": "Jessore",

    "name": "Dev"

},

{

    "address": "Bogra",

    "name": "Kumar Saikat"

}

}


查看完整回答
反对 回复 2021-10-24
  • 3 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信