如何使用.net C#构建此json?

如何使用.net C#构建此json?,c#,json.net,C#,Json.net,我想构建一个json,如下所示: ... "conditions": [ [ "Language", "IN", [ "en" ] ] ] ... 我正在使用以下代码: new JProperty("conditions", new JArray(new JArray((new JArray("Language", "IN", new JArray(IsEnglish ? "

我想构建一个json,如下所示:

...
  "conditions": [
      [
        "Language",
        "IN",
        [
          "en"
        ]
      ]
    ]
...
我正在使用以下代码:

new JProperty("conditions", new JArray(new JArray((new JArray("Language", "IN", new JArray(IsEnglish ? "en" : "es"))))))
但这一个为我构建了一个json,少了一个数组

  "conditions": 
      [
        "Language",
        "IN",
        [
          "en"
        ]
      ]
我试着把这个嵌套到另一个JArray中,但这不起作用。请建议

编辑:这是整个Json生成语句

 JObject json = new JObject(
           new JProperty("application", pwApplication),
           new JProperty("auth", pwAuth),
           new JProperty("notifications",
               new JArray(
                   new JObject(
                       new JProperty("send_date", "now"),
                       new JProperty("content", new JObject(new JProperty("en", pushContentEnglish), new JProperty("es", pushContentSpanish))),
                       new JProperty("ios_badges", 0),
                       new JProperty("data", new JObject(new JProperty("custom", new JObject(new JProperty("t", notificationType), new JProperty("i", objectId))))),
                       new JProperty("devices", new JArray(strDeviceArray)),
                       new JProperty("conditions", new JArray(new JArray((new JArray("Language", "IN", new JArray(IsEnglish ? "en" : "es")))))
                       )))));

我想你只使用一个数据

"conditions": [
  [
    "Language",
    "IN",
    [
      "en"
    ]
  ]
]
但是如果你想再做一个

"conditions": [
    [
        "Language",
        "IN",
        [
            "en"
        ]
    ],
    [
        "Language",
        "IN",
        [
            "pt"
        ]
    ]
]

如果您可以使用此预期数组中的多个数据测试此代码?你会试试这个吗

如果您使用的是Json.Net,为什么不:

var conditions = new[] { new object[] { "Language", "IN", new[] { "en" } } };
var result = "conditions:" + JsonConvert.SerializeObject(conditions);
这似乎有效:

new JProperty("conditions", new JArray((JContainer)new JArray("Language", "IN", new JArray(IsEnglish ? "en" : "es"))))

这种方法之所以有效,是因为构造函数将元素从JArray参数复制到正在构造的JArray,而将其强制转换到JContainer(JArray从中继承)会调用重载。

downvoter,请注意为什么?您尝试这样做时使用了多少数据?我认为您只使用了一个数据和库,不明白您想再创建一个数组@BrunoCasali是的,这就是重点。如何让lib再创建一个数组可以使用Newtonsoft(Json.net)吗?在这种情况下,这将为您节省一大堆代码。@zaitsman已经在使用same@Lakshay现在明白了吗?!我理解你的观点…但是愚蠢的API希望数据是数组中的单个项..谢谢你的回答..但是如何将此属性添加到我的主json@Lakshay,您是否可以使用您希望获得的全部结果(例如,结果json的完整格式)更新帖子