Json属性Map-使用下划线

ohtdti5x  于 2023-01-06  发布在  其他
关注(0)|答案(1)|浏览(152)

我正在实现一个第三方的API,请求和响应数据中的大多数Json属性都是用下划线字符而不是空格和小写字符来格式化的。

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

我不是一个球迷的这种格式在我的内部代码,我宁愿我的模型如下。

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

int OtherReference {get; set;}
}

是否有一种简单的方法可以让序列化器/反序列化器为我进行Map(使用System.Text.Json)-我知道可以使用属性JsonPropertyName来完成此操作,但这意味着要将该属性添加到所有属性中(他们有很多),尽管这个方法允许我在代码中使用更有意义的名称(如果不具备相关知识,以后访问代码的人可能会对Json中的一些名称感到困惑)
谢啦,谢啦

n3h0vuf2

n3h0vuf21#

在Java中,您会使用某种注解(JSON-B /Jackson),在C#中,您会使用前面提到的JsonPropertyName执行相同的操作。
在我看来,这也是你最好的选择,因为你不能写一个像样的算法来插入下划线,这将需要算法在一定程度上理解所使用的语言,因此完全是矫枉过正,容易出错,甚至不容易开发。
因此,我的建议是不要摆弄实际的属性,而是引入另一个类和方法来将第三方的表示解析为您的表示(如果您非常需要它的话),除此之外,JsonPropertyName可能是最好的选择。
有关详细信息,请参见:How to customize property names and values with System.Text.Json

相关问题