将 json 反序列化为对象和字典
Deserializing json into object and dictionary
我下面有一个 json,在“依赖项”下有嵌套数据,这可能会随时更改。所以用单独的字符串创建一个 class 来存储数据是没有意义的。随着时间的推移,它可能会越来越多。
样本Json
{
"uniqueID": 13,
"url": "www.abcde.com",
"dependency": {
"package1": "v1.0.3",
"package2": "v5.4.2",
"package3": "v12.3"
},
"assets": {
"images": [
"a.jpg",
"b.jpg",
"c.jpg",
"d.jpg"
]
}
}
我的问题是有没有一种方法可以通过为“依赖项”创建字典结构同时将结果反序列化为一个对象,这样我就可以完全摆脱 class 和变量?
我的代码当前从 json 创建对象。
public class Dependency
{
public string package1 { get; set; }
public string package2 { get; set; }
public string package3 { get; set; }
}
public class Assets
{
public List<string> images { get; set; }
}
public class Root
{
public int uniqueID { get; set; }
public string url { get; set; }
public Dependency dependency { get; set; }
public Assets assets { get; set; }
}
static void Main(string[] args){
string jsonInput = File.ReadAllText(args[0]);
Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(jsonInput);
}
尝试将 root 更改为此
public class Root
{
public int uniqueID { get; set; }
public string url { get; set; }
public Dictionary<string, string> Dependency{ get; set; }
public Assets assets { get; set; }
}
我下面有一个 json,在“依赖项”下有嵌套数据,这可能会随时更改。所以用单独的字符串创建一个 class 来存储数据是没有意义的。随着时间的推移,它可能会越来越多。
样本Json
{
"uniqueID": 13,
"url": "www.abcde.com",
"dependency": {
"package1": "v1.0.3",
"package2": "v5.4.2",
"package3": "v12.3"
},
"assets": {
"images": [
"a.jpg",
"b.jpg",
"c.jpg",
"d.jpg"
]
}
}
我的问题是有没有一种方法可以通过为“依赖项”创建字典结构同时将结果反序列化为一个对象,这样我就可以完全摆脱 class 和变量?
我的代码当前从 json 创建对象。
public class Dependency
{
public string package1 { get; set; }
public string package2 { get; set; }
public string package3 { get; set; }
}
public class Assets
{
public List<string> images { get; set; }
}
public class Root
{
public int uniqueID { get; set; }
public string url { get; set; }
public Dependency dependency { get; set; }
public Assets assets { get; set; }
}
static void Main(string[] args){
string jsonInput = File.ReadAllText(args[0]);
Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(jsonInput);
}
尝试将 root 更改为此
public class Root
{
public int uniqueID { get; set; }
public string url { get; set; }
public Dictionary<string, string> Dependency{ get; set; }
public Assets assets { get; set; }
}