如果Json密钥之一包含点,如何为Json序列化声明匿名类型?

问题描述 投票:1回答:1

我正在序列化一个匿名对象,以用作HTTP发布请求的请求消息。问题在于,其中一个JSON密钥的名称中包含一个点。 VS抛出“无效的匿名类型成员声明器”错误。

return JsonConvert.SerializeObject(new
{
    query = "something",
    firstname.keyword = "xyz"
});

我该怎么做才能解决此问题?

编辑:真正的json请求看起来像这样,所以我认为我不能使用字典:

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "firstname.keyword": ""
          }
        }
      ],
      "must_not": [ ],
      "should": [ ]
    }
  },
  "from": 0,
  "size": 10,
  "sort": [ ],
  "aggs": { }
}
c# json serialization json-deserialization
1个回答
5
投票

Json通常可以使用数组,字典和匿名对象表示。

您的Json的第一部分可以如下生成:

return JsonConvert.SerializeObject(new
{
    query = new
    {
        @bool = new
        {
            must = new[]
            {
                new
                {
                    term = new Dictionary<string, object>
                    {
                        ["firstname.keyword"] = string.Empty,
                    }
                }
            }
        }
    }
});
© www.soinside.com 2019 - 2024. All rights reserved.