相关疑难解决方法(0)

如何使用Json.NET反序列化可以是两种不同数据类型的JSON属性

我正在使用Json.NET进行我正在进行的项目.从外部API,我接收的JSON具有作为对象的属性,但是当它们为空时,传递"false".

例如:

data: {
    supplier: {
        id: 15,
        name: 'TheOne'
    }
}
Run Code Online (Sandbox Code Playgroud)

也可能是:

data: {
    supplier: false
}
Run Code Online (Sandbox Code Playgroud)

我应该如何定义供应商属性,以便将供应商反序列化为Supplier对象或为null.

现在我有:

public class Data {
   [JsonProperty("supplier")]
   public SupplierData Supplier { get; set; }
}
public class SupplierData {
    [JsonProperty("id")]
    public int Id { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但是现在当供应商的值为'false'时尝试反序列化时,它会失败.当JSON值为"false"时,我希望Supplier属性为null.

我希望有人知道如何做到这一点.谢谢.

c# serialization json json.net

22
推荐指数
1
解决办法
2万
查看次数

标签 统计

c# ×1

json ×1

json.net ×1

serialization ×1