将名称值对添加到JArray中的JObject

Did*_*gba 1 c# json json.net

{
    "x": null,
    "y": null,
    "z": null,
    "things": [
        {
            "x": 1,
            "y": 1
        },
        {
            "x": 1,
            "y": 6
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我想推另一对,things[0]以便它读取

"things": [
{
    "x": 1,
    "y": 1,
    "z": 9000
},
Run Code Online (Sandbox Code Playgroud)

我可以轻松修改这样的值:

JObject myobject = JObject.Parse(responseString);
JArray myarray = (JArray)myobject["things"];

myarray[0]["x"] = 9000;
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何添加/附加到此对象.它似乎myarray[0]是一个JToken,即使它是我做的一个对象GetType()..

Bri*_*ers 6

将数组项转换为a JObject,然后使用该Add方法添加新项JProperty.像这样:

JObject myobject = JObject.Parse(responseString);
JArray myarray = (JArray)myobject["things"];

JObject item = (JObject)myarray[0];
item.Add(new JProperty("z", 9000));

Console.WriteLine(myobject.ToString());
Run Code Online (Sandbox Code Playgroud)

小提琴:https://dotnetfiddle.net/5Cb5lu