gpt4 book ai didi

c# - 从 JSON 中排除域模型对象的属性

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

我正在使用 Newtonsoft JSON 序列化卫星程序集中定义的对象图。我有一个循环引用,它导致超过 JSON 中的递归限制并为已经数据繁重的 POST 添加额外的膨胀。

记录的方法是将 JsonIgnore 属性添加到我的数据对象的属性中,但这需要在我的域项目中引用 Newtonsoft.Json。有没有其他方法可以将属性从序列化中排除?

最佳答案

备选方案 1

您应该能够将 [DataContract][DataMember] 一起使用。

[DataContract]
public class MyDomainModel
{
[DataMember]
public string PublicString { get; set; }

public string HiddenString { get; set; }

public MyDomainModel InfiniteReference { get; set; }
}

它需要引用 System.Runtime.Serialization

例子:

[HttpGet]
public MyDomainModel GetModels()
{
var model = new MyDomainModel
{
HiddenString = "Hidden",
PublicString = "Public",
};
model.InfiniteReference = model;
return model;
}

输出:

{
"publicString": "Public"
}

备选方案 2

I have a circular reference [...]

你可以使用 ReferenceLoopHandling ,它只是削减了循环引用。但这可能不是您想要的,当您提到其他额外膨胀时。

config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;

关于c# - 从 JSON 中排除域模型对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38656740/

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