gpt4 book ai didi

c# - 从 JsonContract 中读取 JSON 属性名称

转载 作者:太空宇宙 更新时间:2023-11-03 12:55:31 24 4
gpt4 key购买 nike

我有一个序列化为 JSON 的 DTO。我需要知道属性的名称,因为它将出现在 JSON 中。我有合适的 IContractResolver,但我不确定如何从这里转到最终的属性名称。

我使用了 GetResolvedPropertyName,这是一个开始而不是结束。例如,因为它需要一个字符串作为参数,所以它不能查找例如属性上的 JsonPropertyAttribute。在其他情况下,它可能无法完成全部工作。

如果我有 PropertyInfoContractResolver,我如何获得最终的属性名称?

最佳答案

我不确定我理解为什么您需要这样做,但是,假设您的IContractResolver 派生自DefaultContractResolver,您可以获得这样的属性名称:

JsonObjectContract contract = (JsonObjectContract)resolver.ResolveContract(typeof(DTO));
var dict = contract.Properties.ToDictionary(p => p.UnderlyingName, p => p.PropertyName);

Console.WriteLine("Serialized property names will be: ");
foreach (var kvp in dict)
{
Console.WriteLine(kvp.Key + " => " + kvp.Value);
}

fiddle :https://dotnetfiddle.net/RnwnRc

关于c# - 从 JsonContract 中读取 JSON 属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34064381/

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