使用Json.NET进行自定义映射

时间:2012-08-07 10:53:29

标签: c# json serialization json.net

我正在尝试映射看起来像

的JSON
"ids": {
    "id": {
        "@value":"6763754764235874140"
    }
}

我想将它映射到几个看起来像

的类
class Property
{
    public Ids Ids { get; set; }
}

class Ids
{
    public string Id { get; set; }
}

所以基本上我想把JSON文档中的ids/id/@value的值填充到类架构中的Ids.Id。从浏览文档,我想我可以使用类似

的东西
[JsonProperty(ItemConverterType=typeof(IdConverter))]
public string Id { get; set; }

并提供名为JsonConverter的自定义IdConverter子类。但是,当我这样做时,我的IdConverter.ReadJson永远不会被召唤。我做错了什么?

1 个答案:

答案 0 :(得分:13)

看起来答案是ItemConverterType用于转换数组中的项目。使用JsonPropertyJsonConverter属性对属性进行双重注释可以起作用:

[JsonProperty(PropertyName="id")]
[JsonConverter(typeof(IdConverter))]
public string Id { get; set; }