我有一个 DataObject 类列表:
public class DataObject
{
public string Name { get; set; }
public List<Field> Fields { get; set; }
}
}
public class Field
{
public string Name { get; set;}
public string Type { get; set; }
public Object Value { get; set; }
public Field(string name, string type, string value)
{
Name = name;
Type = type;
if(type == "string") Value = (string)value;
else Value = Int32.Parse(value);
}
}
我想将由 DataObject 类组成的列表序列化为 .json 文件。我在下面展示的使用 Json.NET 的方式中,我尝试了几种方案但没有找到如何执行此操作。
例子:
Field field1 = new Field("Brand", "string", "Volvo);
Field field2 = new Field("Power", "int", 200);
List<Field> fields = new List<Field>{field1, field2};
DataObject car = new DataObject{
Name = "Car",
Fields = list
}
List<DataObjects> objects = new List<DataObjects>{car};
结果:
{
"Car":{
"Brand" : "Volvo",
"Power" : 200
}
}
最佳答案
使用 Newtonsoft.Json,序列化相当容易。我拿了你的代码并添加了以下行:
string json = JsonConvert.SerializeObject(objects, Newtonsoft.Json.Formatting.Indented);
它给了我以下输出:
[
{
"Name": "Car",
"Fields": [
{
"Name": "Brand",
"Type": "string",
"Value": "Volvo"
},
{
"Name": "Power",
"Type": "int",
"Value": 200
}
]
}
]
关于C# 自定义 Json.NET 列表序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56043622/