如何为下面的 json 对象创建 c# 类

本文关键字:对象 创建 json | 更新日期: 2023-09-27 18:31:20

我是json的新手。这是我的 json 对象。任何人都可以帮我为下面的json对象创建C#类

{
   "JBS" : {
      "name" : "Jobsite"
   },
   "LNK" : {
      "name" : "Linked IN"
   },
   "MUK" : {
      "name" : "Monster UK"
   }
}

在这种情况下,我需要 (JBS,作业现场) 的信息,例如 n 个元素。

如何为下面的 json 对象创建 c# 类

将类声明为:

public class Entity
{
    public string name{get; set;}
}
public class JsonData
{
    public Entity JBS{get;set;}
    public Entity LNK{get;set;}
    public Entity MUK{get;set;}
}

然后使用:

var json =
   @"{'JBS' : {'name' : 'Jobsite'},
   'LNK' : {'name' : 'Linked IN'},
   'MUK' : {'name' : 'Monster UK'}}";

JsonData jsonData = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<JsonData>(json);

}

更新

我认为这个片段是根据您的要求列出的。

var json =
@"{ 'JBS' : {'name' : 'Jobsite'},
    'LNK' : {'name' : 'Linked IN'},
    'MUK' : {'name' : 'Monster UK'}}";

var jsonData = new System.Web.Script.Serialization.JavaScriptSerializer()
.Deserialize<Dictionary<string,Dictionary<string, string>>>(json)
.ToDictionary(d => d.Key, d => d.Value.First().Value);
如果要

枚举结果,则应尝试反序列化为字典。下面是一个反序列化它的示例,然后列出它们:

var json = "{ '"JBS'" : { '"name'" : '"Jobsite'" }, '"LNK'" : { '"name'" : '"Linked IN'" }, '"MUK'" : { '"name'" : '"Monster UK'" } }";
var result = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<Dictionary<string, JobSite>>(json);
var jobsites = new List<JobSite>(result.Count);
foreach (var pair in result)
{
    var jobsite = pair.Value;
    jobsite.Short = pair.Key;
    jobsites.Add(jobsite);
}

该示例使用如下所示的类:

public class JobSite
{
    public string Short { get; set; }
    public string Name { get; set; }
}

尝试使用 json.net 将 json 反序列化为动态对象。 然后,您应该能够访问这些属性。

您还可以参考此问题:使用 Json.net 将 json 对象反序列化为动态对象