给出以下json结果:默认的json结果有一组已知的字段:
{
"id": "7908",
"name": "product name"
}
但可以用额外的字段(在此示例中被扩展_unknown_field_name_1和_unknown_field_name_2其中的请求结果,当名称不知道)。
{
"id": "7908",
"name": "product name",
"_unknown_field_name_1": "some value",
"_unknown_field_name_2": "some value"
}
我希望将json结果序列化并反序列化为具有已知字段属性的类,并将未知字段(没有属性)映射到属性(或多个属性),如字典,这样它们就可以了访问和修改。
public class Product
{
public string id { get; set; }
public string name { get; set; }
public Dictionary<string, string> fields { get; set; }
}
我想我需要一种方法来插入一个json序列化器并自己为缺失的成员做映射(用于序列化和反序列化)。我一直在寻找各种可能性:
json.net和自定义合约解析器(无法弄清楚如何做)
datacontract序列化程序(只能覆盖序列化,序列化)
序列化为动态并进行自定义映射(这可能有效,但似乎很多工作)
让产品继承自DynamicObject(序列化程序使用反射,不调用trygetmember和trysetmember方法)
我正在使用restsharp,但可以插入任何序列化程序。
哦,我无法改变json的结果,这或者这对我也没有帮助。
更新: 看起来更像它:http://geekswithblogs.net/DavidHoerster/archive/2011/07/26/json.net-custom-convertersndasha-quick-tour.aspx
相关分类