【发布时间】:2020-10-29 02:34:39
【问题描述】:
所以我正在进行 api 调用,我需要使用 JsonConvert.DeserializeObject 将其转换为类。 Json 结构返回如下
{
"fcResponse": {
"responseData": {
"fcRequest": {
"mail": "Emails",
"outlookMail": "Outlook Emails",
(etc.)
}
}
}
}
问题在于“fcRequest”中返回的值会根据我发送的参数而有所不同。
目前类结构如下
public class GetSubModulesResponse : BaseResponse
{
[JsonProperty("fcResponse")]
public SubModuleResponse Response { get; set; }
}
public class SubModuleResponse
{
[JsonProperty("responseData")]
public SubModuleData Data { get; set; }
}
public class SubModuleData
{
[JsonProperty("fcRequest")]
public SubModuleFIMRequest RequestFIM { get; set; }
[JsonProperty("fcRequest")]
public SubModuleFSRequest RequestFS { get; set; }
}
这是基本的调用结构
GetSubModulesResponse subModuleResponse = new GetSubModulesResponse();
var response = SubmitAPICall();
subModuleResponse = JsonConvert.DeserializeObject<GetSubModulesResponse>(response);
现在我知道我显然不能在 RequestFIM 和 RequestFS 上拥有相同的 JsonProperty,但我正在尝试做的是找到一种方法来根据变量切换我应该使用这两个属性中的哪一个。
【问题讨论】:
-
那么您的
fcRequest可以是两种不同类型之一? -
您正在处理的 API 是否有
SDK?大多数时候他们都会这样做。 -
@PatrickMcvay 不是我所知道的,我目前的结构是 fcRequest 以两种不同的类型返回,但我不知道这是否是最好的方法
-
这是您构建的 API 吗?
-
我会说这不是最好的方法。这将需要太多的猜测工作,而且只是在问问题。如果您可以控制的话,您可能应该每次都返回这两种类型,并将其中一种设为 null。
标签: c# serialization jsonconvert