给出以下json结果:默认的json结果有一组已知的字段:
{
"id": "7908",
"name": "product name"
}
Run Code Online (Sandbox Code Playgroud)
但可以用额外的字段(在此示例中被扩展_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"
}
Run Code Online (Sandbox Code Playgroud)
我希望将json结果序列化并反序列化为具有已知字段属性的类,并将未知字段(没有属性)映射到属性(或多个属性),如字典,这样它们就可以了访问和修改.
public class Product
{
public string id { get; set; }
public string name { get; set; }
public Dictionary<string, string> fields { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想我需要一种方法来插入一个json序列化器并自己为缺失的成员做映射(用于序列化和反序列化).我一直在寻找各种可能性:
我正在使用restsharp,但可以插入任何序列化程序.
更新: 看起来更像它:http://geekswithblogs.net/DavidHoerster/archive/2011/07/26/json.net-custom-convertersndasha-quick-tour.aspx
cec*_*lip 70
解决此问题的更简单方法是使用JSON .NET中的JsonExtensionDataAttribute
public class MyClass
{
// known field
public decimal TaxRate { get; set; }
// extra fields
[JsonExtensionData]
private IDictionary<string, JToken> _extraStuff;
}
Run Code Online (Sandbox Code Playgroud)
有这样的项目博客样本这里
更新请注意,这需要JSON .NET v5第5版及更高版本
归档时间: |
|
查看次数: |
37942 次 |
最近记录: |