无法为 Azure 函数使用 JSON 数组

Unable to use JSON array for Azure Function

我的 azure 函数有以下 JSON 输入,但在反序列化对象后无法将其传入

{
  "name": [{
      "SiteName": "Site1",
      "SiteUrl": "https://site1.com/"
    },
    {
      "SiteName": "Site2",
      "SiteUrl": "https://site2.com/"
    },
  ]
}

反序列化后,我得到的计数为 2,但内部数组值我没有使用以下代码进行反序列化

string requestBody = new StreamReader(req.Body).ReadToEnd();
dynamic data = JsonConvert.DeserializeObject(requestBody);
       
var Root = data["name"].ToObject<List<Constant>>();

常量 class 声明如下

class Constant
{
     public Dictionary<string, string> name { get; set; }
} 

解决方案 1:反序列化为对象列表

模型class应该是:

public class Site
{
    public string SiteName { get; set; }
    public string SiteUrl { get; set; }
} 

反序列化如下:

var Root = data["name"].ToObject<List<Site>>();

Sample program (Site class)


解决方案 2:反序列化为字典

var Root = data["name"].ToObject<List<Dictionary<string, string>>>();

Sample program (Dictionary)

尝试像下面这样创建 class。

class JsonResponse
{
    public List<Constant> name { get; set; }
}

class Constant
{
    public string SiteName { get; set; }
    public string SiteUrl { get; set; }
}

并尝试使用 JsonConvert.DeserializeObject<JsonResponse>(requestBody) 反序列化响应。

string requestBody = new StreamReader(req.Body).ReadToEnd();
JsonResponse data = JsonConvert.DeserializeObject<JsonResponse>(requestBody);
var Root = data.name;