2013-03-12 31 views
4

我无法弄清楚如何连接两个我使用JArray.Parse的JArrays?数组的顺序必须保持不变,即第一个数组应该是第一个,然后是秒后的元素。如何在JSON.NET中合并/合并两个JArrays

+0

这就是事情......我不知道该怎么做。我是JSON.NET新手,期待Append或Concatenate API,但没有看到任何? – tunafish24 2013-03-12 20:32:28

回答

7

您可以通过调用JArray.Add(element)将元素添加到JArray,其中元素来自第二个JArray。你需要循环在第二JArray添加这些元素,但是这将完成你想要什么:在上面的例子jarrayOne现在将包含所有的第一个数组的元素之后的第二

for(int i=0; i<jarrayTwo.Count; i++) 
{ 
    jarrayOne.Add(jarrayTwo[i]); 
} 

数组元素的顺序。您可以通过JArray documentation了解更多详情。

+0

谢谢!做到了! – tunafish24 2013-03-13 02:49:13

5

您也可以使用union方法:

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

现在test1

[ 
    "john", 
    "doe" 
] 
+0

这生成一个新的JArray,保留旧的JArray – Aaron 2017-08-11 20:22:47

7

我用Merge方法,其修改原始JArray:

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

我的两个一般情况下,你有nJArray的:

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));