2013-03-12 76 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));