我想这样创建json:
{
"classA":{
"A":"",
"B":"",
"C":""
},
"classB":{
"E":"",
"A":"",
"G":""
},
"classC":{
"A":"",
"B":""
},
"classD":{
"A":""
}
}
如何转换这种类型的json?我正在使用Newtonsoft.Json
,但是我目前使用一种硬编码方法对其进行了转换。
答案 0 :(得分:1)
最简单的方法是为所有对象创建一个包装器类并反序列化包装器:
使用json2csharp之类的工具来生成类结构:
public class ClassA
{
public string A { get; set; }
public string B { get; set; }
public string C { get; set; }
}
public class ClassB
{
public string E { get; set; }
public string A { get; set; }
public string G { get; set; }
}
public class ClassC
{
public string A { get; set; }
public string B { get; set; }
}
public class ClassD
{
public string A { get; set; }
}
public class Wrapper
{
public ClassA classA { get; set; }
public ClassB classB { get; set; }
public ClassC classC { get; set; }
public ClassD classD { get; set; }
}
之后,您可以像这样反序列化它:
var obj = JsonConvert.DeserializeObject<Wrapper>(json);
要将现有对象序列化为json字符串,可以这样进行:
var obj = new Wrapper();
var json = JsonConvert.SerializeObject(obj);
答案 1 :(得分:0)
如果我没记错的话,newtonsoft库不能从盒子里做到这一点。
您可以根据自己的方案创建一个类,然后对其进行序列化/反序列化。