我在MVC 4程序中使用Json.net。
我有一个item阶级的对象Item。
item
Item
我做了: string j = JsonConvert.SerializeObject(item);
string j = JsonConvert.SerializeObject(item);
现在,我想添加一个额外的属性,如"feeClass" : "A"成j。
"feeClass" : "A"
j
我如何使用Json.net实现这一目标?
您有几种选择。
正如@Manvik所建议的那样,最简单的方法就是在类中添加另一个属性并在序列化之前设置其值。
如果您不想这样做,那么下一个最简单的方法是将您的对象加载到中JObject,追加新属性值,然后从那里写出JSON。这是一个简单的示例:
JObject
class Item { public int ID { get; set; } public string Name { get; set; } } class Program { static void Main(string[] args) { Item item = new Item { ID = 1234, Name = "FooBar" }; JObject jo = JObject.FromObject(item); jo.Add("feeClass", "A"); string json = jo.ToString(); Console.WriteLine(json); } }
这是上面的输出:
{ "ID": 1234, "Name": "FooBar", "feeClass": "A" }
另一种可能性是JsonConverter为您的Item类创建一个自定义,并在序列化过程中使用它。A JsonConverter使您可以完全控制特定类在序列化过程中写入的内容。您可以根据需要添加属性,抑制属性,甚至写出不同的结构。对于这种特殊情况,我认为这可能是矫kill过正,但这是另一种选择。
JsonConverter