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

Dat*_*han 5 c# serialization json json.net

我正在尝试映射看起来像的JSON

"ids": {
    "id": {
        "@value":"6763754764235874140"
    }
}
Run Code Online (Sandbox Code Playgroud)

我想把它映射到几个看起来像的类

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

class Ids
{
    public string Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

所以基本上我想把ids/id/@valueJSON文档的值填充到Ids.Id类体系结构中.从浏览文档,我想我可以使用类似的东西

[JsonProperty(ItemConverterType=typeof(IdConverter))]
public string Id { get; set; }
Run Code Online (Sandbox Code Playgroud)

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

Dat*_*han 14

看起来答案ItemConverterType是用于转换数组中的项目.使用JsonPropertyJsonConverter属性双重注释属性:

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