嵌套类

时间:2017-09-06 14:52:47

标签: c# asp.net-web-api json.net

假设我有以下json

{ id: 1, name: "Eddy Vedder" }

将在以下类中反序列化:

public class GuitarIdol {
    public int Id { get; set; }
    public string Name { get; set; }
}

由于GuitarIdol只是接口的一个实现,我创建了一个自定义JsonConverter类来帮助模型绑定器进行反序列化。然后,我使用相应的属性

装饰了我的班级GuitarIdol
[JsonConverter( typeof( GuitarIdolConverter ) )]
public class GuitarIdol {
}

如果要反序列化的对象单独包含在web api请求的主体中,则此方法非常有效。例如:

public async Task<HttpResponseMessage> Create( GuitarIdol idol )

当我尝试将此GuitarIdol对象嵌套在另一个类中时,会出现问题。例如:

public class MyClass {
    public string Notes { get; set; }
    public GuitarIdol Idol { get; set; }
}

所以我在api中有一个不同的动作方法

public async Task<HttpResponseMessage> Update( MyClass model )

在这种情况下,我的自定义JsonConverter按预期正确调用,但Json.Net库不会仅传递我想要转换的json部分,而是传递整个json。例如:

{ idol: { id: 1, name: "Eddy Vedder" }, notes: "great music" }

如何才能更好地编写自定义json转换器的代码以使其具有弹性并且只能解析感兴趣的字符串部分?

0 个答案:

没有答案
相关问题