我在C#中有一个代表JSON对象的POCO类:
类
public int id {get; set;}
public string name {get; set;}
public string description {get; set;}
JSON
{
"id" : 1,
"name" : "name",
"description" : "description"
}
现在json将添加这些属性:
{
"property_1" : "value_1",
"property_2" : "value_2",
"property_3" : "value_3"
//etc
}
可能只有0个属性和所需数量,但它们都会被命名为property_
和一个数字。
所以对于类我想要某种List<>
而不是单独对每个属性进行硬编码,但后来又返回了Json
对象(我正在使用MVC)我想要拆分{{ 1}}到单个对象中,我该怎么做?
而不是:
List<>
我想:
return Json(property_1, property_2, property_3);
答案 0 :(得分:3)
如果您使用Json.NET进行JSON序列化,则可以使用[JsonExtensionData]
属性捕获尚未编码的属性。从Json.NET 5.0.8开始,此属性会影响序列化和反序列化,以确保您的POCO对象支持往返。
实际上,我将这个属性放在一个抽象基类中的一个字段上,我的所有模型类都来自这个类:
答案 1 :(得分:1)
您可以编写自己的自定义MediaTypeFormatter
并将其插入标准JsonFormatter前面的HttpConfiguration.Formatters集合,或者扩展标准版本并完全替换它。 (我建议前者。)
MediaTypeFormatters允许您在进入原始流时访问它,基本上您可以使用所有JSON.NET对序列化和反序列化执行任何操作。