我有下一个JSON:
"mode":"modeValue",
"format":"formatValue",
"options":{
"page":1,
"size":"70",
"resize":"false",
"templating":null
}
但"选项"值对象可以与当前不同,我可以有很多不同的选项。例如,它可以是
"options": {
"page": 2,
"first": "true",
"parent": null
}
我创建了一个类
public class Settings
{
[JsonProperty(PropertyName = "mode")]
public string Mode { get; set; }
[JsonProperty(PropertyName = "format")]
public string OutputFormat { get; set; }
[JsonProperty(PropertyName = "options")]
public string Options { get; set; }
}
我不想反序列化"选项" value,但要在Options
属性中将其设置为字符串(序列化)。
注意:我只会将此类用于反序列化。
谢谢!
答案 0 :(得分:0)
您可以使用OnDeserialized
属性来实现此目的。这是一个例子:
public class Settings
{
[JsonProperty(PropertyName = "mode")]
public string Mode { get; set; }
[JsonProperty(PropertyName = "format")]
public string OutputFormat { get; set; }
[JsonIgnoreAttribute]
public string Options { get; private set; }
[JsonProperty(PropertyName = "options")]
private object Temp { get; set; }
[OnDeserialized]
private void OnDeserialized(StreamingContext ctx)
{
Options = Temp?.ToString();
}
}
"选择"被反序列化为" Temp"财产,然后"选项"由Temp.ToString()