Json序列化程序引用处理asp.net
从数据库获取数据时,我们有很多递归和循环引用。为了处理这个问题,我们配置(默认)json序列化程序来提供对象ID和引用,例如Json序列化程序引用处理asp.net,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,从数据库获取数据时,我们有很多递归和循环引用。为了处理这个问题,我们配置(默认)json序列化程序来提供对象ID和引用,例如 { "$id": "1", "Children": [ { "$id": "2", "Children": null, "Name": "Bob Smith", "Parent": { "$ref": "1" }}, { "$id": "3", "Children": null, "Name": "Suzy Smith
{
"$id": "1",
"Children":
[
{ "$id": "2", "Children": null, "Name": "Bob Smith", "Parent": { "$ref": "1" }},
{ "$id": "3", "Children": null, "Name": "Suzy Smith", "Parent": { "$ref": "1" }}
],
"Name": "John Smith",
"Parent": null
},
{
"$ref": "2"
},
{
"$ref": "3"
}
]
我的问题是当有大量请求时,$id和$ref号的行为。我们处理的流量相当可观,它们很快就会溢出
我们将其配置为
.AddJsonOptions(options =>
{
options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
options.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.Objects;
});
听起来您需要对代码进行性能测试?我不知道你如何期望人们知道你的代码在信息如此之少的情况下会如何执行,也许我不清楚。我问的是“$id”:“#”在达到int.max或任何id被解释为的值时的行为。它不是特定于代码的东西,而是asp.net mvc的一部分。你不需要看到任何自定义代码,如果你有知识,我提供的就足够了。很公平,祝你好运得到答案