将数据数组添加到现有属性中

时间:2014-12-11 16:36:52

标签: c# json.net

我尝试了不同的解决方案,但我没有到达任何地方。

我正处于循环中间,有时我需要将数据添加到现有属性(在这种情况下为details)。

因此,在开始时我创建了以下JObject而没有任何问题:

var json = JsonConvert.SerializeObject(
    new {
      details = new[]{ 
        new{product_name        = detail["product_name"].ToString(), 
            quantity            = detail["quantity"].ToString(),
            product_options     = detail["product_options"].ToString()},
      }
    }
);

// _elements is an dictionary<int, JObject>
_elements.Add(id, JObject.Parse(json));

// output 
{
    "details": [

        {
            "product_name": "Oranges",
            "quantity": "2",
            "product_options": [],
        }

    ]
}

但是,出于某种原因,我需要在details列表中添加更多产品,所以我希望我的输出为:

{
    "details": [

        {
            "product_name": "Oranges",
            "quantity": "2",
            "product_options": [],
        },

        {
            "product_name": "Coca Cola",
            "quantity": "5",
            "product_options": [],
        }
    ]
}

到目前为止,我已经尝试过没有任何成功:

dic.Value.Property("details").Add(json);
dic.Value.SelectToken("details").Add(json);

1 个答案:

答案 0 :(得分:1)

<强>解决

dic.Value["details"].Last.AddAfterSelf(JObject.Parse(json));