【发布时间】:2019-06-24 20:21:30
【问题描述】:
问。 1 我正在尝试将实体推入 CRM。 json 看起来像这样:
{
"sub_AssignedToCompanyId@odata.bind": "/accounts(f52f9dd7-35e5-e711-813b-480fcff40721)"
}
现在,我的 C# 类上有一个名为 AssignedToCompany 的属性,如下所示:
[JsonProperty(PropertyName = "sub_AssignedToCompanyId@odata.bind")]
public int AssignedToCompany{ get; set; }
我想要的是一种将它序列化为 sub_AssignedToCompanyId@odata.bind 的方法(我已经使用 JsonProperty("sub_AssignedToCompanyId@odata.bind") 完成了。但是那么招摇定义看起来不太好。我想要这个属性的大摇大摆的定义说“assignedToCompanyId”。有没有办法做到这一点?我正在使用.Net Framework Web API。
Q.2 而且,有没有办法可以翻译这个输入: f52f9dd7-35e5-e711-813b-480fcff40721
到这个输出: /accounts(f52f9dd7-35e5-e711-813b-480fcff40721)
在序列化过程中自动?
【问题讨论】:
-
根据this post,如果您为属性设置了
JsonProperty属性,那么这就是Swagger 将用作显示值的内容。我不认为 Swagger 支持显示一个与底层 json 属性不同的值。 Swagger 的重点是向开发人员确切地显示他们需要提供哪些价值。如果显示的内容与要求的内容不同,那么首先就违背了拥有该页面的目的。 -
我明白这一点,但在这种情况下,向我的最终用户显示“@odata.bind”是没有意义的。对于我的 api 的用户来说,它只是分配给它的公司的 id。无论如何,谢谢你的回答。
-
你已经问了两个问题,但是堆栈溢出的规则是one question per post。你能把你的问题分成两个帖子吗?我可能会回答 #2 但不会回答 #1。