C#自定义Json.NET列表序列化
我有一个DataObject类的列表:C#自定义Json.NET列表序列化,c#,json,serialization,C#,Json,Serialization,我有一个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 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);
}
}
使用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
}
]
}
]
我明白了,但是如何使变量名(在我的例子中是“Brand”)成为变量值的标记(例如“Volvo”)以获得
“Brand”:“Volvo”
等。如果列表中有多个数据对象,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
}
]
}
]