来自数组<>对象的 JSON GET 请求更改



我想在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之后,您必须跟踪它是哪种类型。

相关内容

  • 没有找到相关文章

最新更新