如何在JSON.NET中组合/合并两个JArrays

时间:2013-03-12 20:28:52

标签: c# json json.net

我无法弄清楚如何连接我使用JArray.Parse的两个JArray?必须保留数组的顺序,即第一个数组应该是第一个数组,而元素应该是以秒为单位。

4 个答案:

答案 0 :(得分:21)

我使用Merge方法修改原始JArray:

 JArray test1 = JArray.Parse("[\"john\"]");
 JArray test2 = JArray.Parse("[\"doe\"]");
 test1.Merge(test2);

答案 1 :(得分:9)

您可以通过调用JArray来向一个JArray.Add(element)添加元素,其中元素来自第二个JArray。你需要遍历第二个JArray以添加所有这些元素,但这将实现你想要的:

for(int i=0; i<jarrayTwo.Count; i++)
{
    jarrayOne.Add(jarrayTwo[i]);
}
上面示例中的

jarrayOne现在将包含所有第一个数组的元素,后跟第二个数组的元素。您可以查看JArray documentation了解更多详情。

答案 2 :(得分:8)

您也可以使用union方法:

JArray test1 = JArray.Parse("[\"john\"]");
JArray test2 = JArray.Parse("[\"doe\"]");
test1 = new JArray(test1.Union(test2));

现在test1

[
  "john",
  "doe"
]

答案 3 :(得分:0)

我对你有n JArray的通用案例的两分钱:

IEnumerable<JArray> jarrays = ...
var concatenated = new JArray(jarrays.SelectMany(arr => arr));

并将其投射到两个JArray的原始问题上:

JArray jarr0 = ...
JArray jarr1 = ...
var concatenated = new JArray(new[] { jarr0, jarr1 }.SelectMany(arr => arr));