猿问

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

我是 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”将是随机的,因为我将从数据库中获取它们)。对此问题的任何帮助和启发将不胜感激。先感谢您。


胡说叔叔
浏览 137回答 3
3回答

眼眸繁星

反序列化的正确方法如下var model = JsonConvert.DeserializeObject<Dictionary<string, Item>>(data);在您发布的代码示例中,您的“ user ”类名称是Item但您正尝试在代码中使用“ User ”进行反序列化。另请注意,您不能直接将数据反序列化到用户列表中,因为它作为一些随机字符串的值存在。var model = JsonConvert.DeserializeObject<user>(json);为了让您的代码正确反序列化,您的 json 格式应如下所示:{{&nbsp; &nbsp; "address": "Jessore",&nbsp; &nbsp; "name": "Dev"},{&nbsp; &nbsp; "address": "Bogra",&nbsp; &nbsp; "name": "Kumar Saikat"}}

Helenr

反序列化的正确方法如下var model = JsonConvert.DeserializeObject<Dictionary<string, Item>>(data);在您发布的代码示例中,您的“ user ”类名称是Item但您正尝试在代码中使用“ User ”进行反序列化。另请注意,您不能直接将数据反序列化到用户列表中,因为它作为一些随机字符串的值存在。var model = JsonConvert.DeserializeObject<user>(json);为了让您的代码正确反序列化,您的 json 格式应如下所示:{{&nbsp; &nbsp; "address": "Jessore",&nbsp; &nbsp; "name": "Dev"},{&nbsp; &nbsp; "address": "Bogra",&nbsp; &nbsp; "name": "Kumar Saikat"}}
随时随地看视频慕课网APP
我要回答