gpt4 book ai didi

c# - Json.Net 属性忽略所有属性

转载 作者:行者123 更新时间:2023-11-30 15:15:54 25 4
gpt4 key购买 nike

是否有一个属性告诉 json.net 忽略类的所有属性但包括所有字段(无论访问修饰符如何)?

如果没有,有没有办法创建一个?

基本上我想要一个属性来装饰类,它与将 [JsonIgnore] 放在每个属性前面具有等效的效果。

最佳答案

您可以将 [JsonObject(MemberSerialization.OptIn)] 属性添加到您的类中,然后所有内容都将被忽略,除非您使用 [JsonProperty] 明确选择加入成员的属性。

[JsonObject(MemberSerialization.OptIn)]
public class Address
{
[JsonProperty]
private string _field1 = "bob";

public string Line1 { get; set; }

public string Line2 { get; set; }

public string Line3 { get; set; }
}

例如

using System;
using AutoFixture;
using Newtonsoft.Json;

public class Program
{
public static void Main()
{
var fixture = new Fixture();
var address = fixture.Create<Address>(); // Create an address filled with junk

var json = JsonConvert.SerializeObject(address);

Console.WriteLine(json);
}
}

将输出:

{"_field1":"bob"}

关于c# - Json.Net 属性忽略所有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51144399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com