2013-03-12 5 views
4

Я не могу понять, как объединить два JArrays, которые я использовал, используя JArray.Parse? Порядок массивов должен быть сохранен, то есть первый массив должен быть первым, а элемент в секундах должен наступить позже.Как объединить/объединить два JArrays в JSON.NET

+0

Это вещь ... Я не могу понять, что делать. Я новичок в JSON.NET и ожидал API Append или Concatenate, но не видел? – tunafish24

ответ

7

Вы можете добавить элементы в один JArray, позвонив по номеру JArray.Add(element), где элемент поступает из второго JArray. Вам нужно перебрать второй JArray, чтобы добавить все эти элементы, но это будет сделать то, что вы хотите:

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

в приведенном выше примере jarrayOne теперь будет содержать все элементы первого массива с последующим вторым элементы массива в последовательности. Вы можете посмотреть через JArray documentation для получения дополнительной информации.

+0

Спасибо! вот и все! – tunafish24

5

Вы также можете использовать метод накидной:

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

Теперь test1 является

[ 
    "john", 
    "doe" 
] 
+0

Это создает новый JArray, оставляя старые неповрежденными – Aaron

7

Я использовал Merge метод, который изменяет оригинальный JArray:

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

Мои два центов для общего случая, когда у вас есть nJArray 's:

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)); 
Смежные вопросы