17

I can't figure out how to concatenate two JArrays that I got by using JArray.Parse? The order of the arrays must be preserved i.e. the first array should be first and element in seconds should come afterwards.

1
  • That's the thing...I can't figure out what to do. I'm new to JSON.NET and was expecting an Append or Concatenate API, but dont see any? Commented Mar 12, 2013 at 20:32

4 Answers 4

52

I used the Merge method, which modifies the original JArray:

 JArray test1 = JArray.Parse("[\"john\"]");
 JArray test2 = JArray.Parse("[\"doe\"]");
 test1.Merge(test2);
Sign up to request clarification or add additional context in comments.

Comments

15

You can add elements to one JArray by calling JArray.Add(element) where element comes from the second JArray. You'll need to loop over the second JArray to add all of these elements, but this will accomplish what you want:

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

in the above example jarrayOne will now contain all of the first array's elements followed by the second array's elements in sequence. You can take a look through the JArray documentation for further details.

Comments

10

You can also use the union method:

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

Now test1 is

[
  "john",
  "doe"
]

1 Comment

This generates a new JArray, leaving the old ones intact
5

My two cents for the generic case where you have n JArray's:

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

And to project this onto the original question with two JArray's:

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.