你如何找到一个名为“response”的 JArray 并添加一个新的 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))
            )
         );
    }
}

最佳答案

首先,始终包含有关您的错误的信息。这可以帮助您的同龄人帮助您。

错误指出“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))
            )
         );
    }
}

关于c# - 找到 JArray 并添加 JObject,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39494657/

10-13 08:26
查看更多