你如何找到一个名为"响应的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))
)
);
}
}
答案 0 :(得分:3)
首先,请始终包含有关错误的信息。这可以帮助你的同伴帮助你。
错误表明' 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))
)
);
}
}