Json.NET 不序列化特定属性



我有下一个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; }
}

我不想对"选项"值进行估算,而是将其设置为Options属性中的字符串(序列化)。

注意:我将仅将此类用于避难所。

谢谢!

您可以使用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();
        }
    }

" options"被应列入" temp"属性,然后由 Temp.ToString()

填充"选项"

相关内容

  • 没有找到相关文章

最新更新