我想在REST API上执行JSON获取请求
当我发布一个资源并立即使用get时,我会在响应中得到一个JSON对象
当我在发布后放置资源并在发布后使用get时,JSON对象将变为数组
以下是我得到的一些回复示例:
张贴和放置后:
{
"metadata":{
"entry":[
{
"@key":"x",
"$":"y"
},
{
"@key":"x",
"$":"y"
}
]
}
}
仅张贴后:
{
"metadata": {
"entry": {
"@key": "cachingEnabled",
"$": "false"
}
},
}
我可以使用以下代码中的任何一个使其同时工作。
JSON数组:
public class MetaData
{
[JsonProperty("entry")]
public List<EntryType> Entry { get; set; }
}
JSON对象:
public class MetaData
{
[JsonProperty("entry")]
public EntryType Entry { get; set; }
}
如何在c#中将其映射到一个属性?
您可以将其映射到dynamic
类型,这使编译器可以在运行时延迟该类型:
public class MetaData
{
[JsonProperty("entry")]
public dynamic Entry { get; set; }
}
这样,每次反序列化Entry
时,它都可能是不同的类型。在反序列化JSON之后,您必须跟踪它是哪种类型。