我是json的新手。这是我的json对象。任何人请帮我为下面的json对象创建C#类
{
"JBS" : {
"name" : "Jobsite"
},
"LNK" : {
"name" : "Linked IN"
},
"MUK" : {
"name" : "Monster UK"
}
}
因为我需要(JBS,工地)的信息,就像n个元素一样。
答案 0 :(得分:5)
将类声明为:
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);
答案 1 :(得分:2)
如果要枚举结果,则应尝试反序列化为字典。这是一个反序列化它然后列出它们的例子:
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; }
}
答案 2 :(得分:0)
尝试使用json.net将json反序列化为动态对象。然后你应该能够访问这些属性。
您也可以参考这个问题:Deserialize json object into dynamic object using Json.net