找到JArray并添加JObject

本文关键字:JObject 添加 JArray 找到 | 更新日期: 2023-09-27 18:06:56

如何找到一个名为"response"的JArray并添加一个New JObject?

var json = new JObject();
json.Add(new JProperty("response", new JArray()));
using (var reader = dbCommand.ExecuteReader()) {
    while (reader.Read()) {
        json.GetValue("response").AddAfterSelf( // throws exception
            new JObject(
                new JProperty("id", reader.GetString(0)),
                new JProperty("val", reader.GetString(1))
            )
         );
    }
}

找到JArray并添加JObject

首先,总是包含有关错误的信息。这有助于你的同伴帮助你。

错误提示'JProperty不能包含多个值'。

你所需要做的就是更新两行:

json.Add("response", new JArray());  // simplified

((JArray)json.GetValue("response")).Add(

将json.GetValue('response')强制转换为JArray使您可以访问其Add方法并修复错误。

最终代码:

var json = new JObject();
json.Add("response", new JArray());
using (var reader = dbCommand.ExecuteReader()) {
    while (reader.Read()) {
        ((JArray)json.GetValue("response")).Add( // <- add cast
            new JObject(
                new JProperty("id", reader.GetString(0)),
                new JProperty("val", reader.GetString(1))
            )
         );
    }
}