繁体   English   中英

Json 属性映射 - 使用下划线

[英]Json Property Mapping - using underscore

我正在实施第 3 方 RestFul API。请求和响应数据中的大部分 Json 属性都使用下划线字符而不是空格和全部小写格式。 例如

{
"message_id" : "QWERTY",
"other_reference" : 12345
}

在我的内部代码中,我不喜欢这种格式,我希望我的 model 是以下格式。

public class data
{
string MessageId {get; set;}

int OtherReference {get; set;}
}

有没有一种简单的方法可以让序列化器/反序列化器为我做映射(使用 System.Text.Json)? 我知道我可以使用属性JsonPropertyName来做到这一点,但这意味着将属性添加到所有属性(有很多属性),尽管这种方法确实允许我在我的代码中使用更有意义的名称(其中的一些名称Json 可能会让日后访问代码的人感到有些困惑,如果他们没有主题知识的话)

谢谢

来自 Java,您将在其中使用某种注释(JSON-B / Jackson),您将在 C# 中使用您已经提到的JsonPropertyName执行相同的操作。

在我看来,这也是你最好的选择,因为你不能编写一个像样的算法来插入下划线,这需要该算法在某种程度上理解所使用的语言,因此完全矫枉过正,容易出错,甚至不容易开发。

因此,我的建议是不要摆弄实际属性,而是引入另一个 class 和方法来将第三方的表示解析为您的表示(如果您非常需要的话),除此之外, JsonPropertyName可能确实是最好的选择。

请参阅: 如何使用 System.Text.Json 自定义属性名称和值以获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM