C# 将字段添加到JSON数组中

C# 将字段添加到JSON数组中,c#,arrays,json,json.net,C#,Arrays,Json,Json.net,我得到了一个JSON字符串,数组如下: { "Id": 123, "Username": "Sr. X", "Packages": [ { "Name": "Cups", "SupplierId": 1, "ProviderGroupId": 575, "SupplierName": "Foo Cups" }, { "Name": "Pins", "SupplierId": 5,

我得到了一个JSON字符串,数组如下:

 {
  "Id": 123,
  "Username": "Sr. X",
  "Packages": [
    {
      "Name": "Cups",
      "SupplierId": 1,
      "ProviderGroupId": 575,
      "SupplierName": "Foo Cups"
    },
    {
      "Name": "Pins",
      "SupplierId": 5,
      "ProviderGroupId": 1082,
      "SupplierName": "Foo Pins"
    }
  ]
}
我想在Packages数组中添加一个新字段,如:

"Packages": [
    {
      "Name": "Cups",
      "SupplierId": 1,
      "ProviderGroupId": 575,
      "SupplierName": "Foo Cups",
      "New Field": "Value"
    },...
现在我可以添加一个新字段,但在主对象中,我使用Json.NET库来完成这项工作,但文档似乎没有达到那个级别

你们中有人做过吗?

试试看

JObject root = (JObject) JsonConvert.DeserializeObject(File.ReadAllText("products.json"));
JArray packages = (JArray) root["Packages"];

JObject newItem = new JObject();
newItem["Name"] = "Cups";
// ...

packages.Add(newItem);

Console.WriteLine(root); // Prints new json

JObject实现了IDictionary

var jObj = JObject.Parse(json);
foreach(var item in jObj["Packages"])
{
    item["New Field"] = "Value";
}
var newjson = jObj.ToString(Newtonsoft.Json.Formatting.Indented);

你不能用
JsonConvert.SerializeObject()再次序列化“主对象”吗将新对象添加到集合后?您到底想做什么?Json.NET文档非常清楚如何…我收到一个带有Json结构的字符串(第一个片段),但我想要的是添加一个新字段和值,然后将其解析为xml,但我所做的部分已经为您的答案L.B.提供了很好的支持。Is以前没有使用过JSON,我认为是时候了,所以我开始练习了,现在我知道了多一点。谢谢你的回答,但是LB方法对我有效。干杯