【发布时间】:2020-10-08 12:40:00
【问题描述】:
我在某些应用程序响应期间使用 .NET Core 3.1 我正在对日志进行对象序列化。
object result = FromSomeCall();
Logger.DebugFormat("Final Response against {0}", JsonSerializer.Serialize(result.Value));
一个对象就像
{
"auth_req_id": ".....",
"expires_in": 1800,
"correlation_id": null,
"access_token": "..==",
"token_type": "Bearer",
"id_token": "....."
}
只有在序列化过程中存在的情况下,我才可以忽略某个特定属性(比如id_token)的任何可能性
object result = FromSomeCall();
可以产生多种类型的对象。
【问题讨论】:
-
如果你可以控制你的 json 被反序列化的类,你可以用JsoniIgnoreAttribute标记属性
-
JsonIgnoreAttribute? -
您的意思是要在反序列化期间包含该属性,但在序列化期间排除它吗?
-
但是system.text.json 没有大部分功能。无法访问其合约解析器,没有条件序列化。你可以写一个自定义的
JsonConverter,就像这里的:How to exclude a property from being serialized in System.Text.Json.JsonSerializer.Serialize() using a JsonConverter。或者您可以序列化为JsonDocument并稍后过滤,请参阅Modifying a JSON file using System.Text.Json。
标签: c# serialization .net-core-3.1 system.text.json