How to add jarray Object into JObject How to add jarray Object into JObject asp.net asp.net

How to add jarray Object into JObject


I see two problems with your code as you posted it.

  1. parameterNames needs to be an array of strings, not just a single string with commas.
  2. You can't add a JArray directly to a JObject; you have to put it in a JProperty and add that to the JObject, just like you are doing with the "birthday" and "email" properties.

Corrected code:

string[] parameterNames = new string[] { "Test1", "Test2", "Test3" };JArray jarrayObj = new JArray();foreach (string parameterName in parameterNames){    jarrayObj.Add(parameterName);}string txtBday = "2011-05-06";string txtemail = "dude@test.com";JObject UpdateAccProfile = new JObject(                               new JProperty("_delete", jarrayObj),                               new JProperty("birthday", txtBday),                               new JProperty("email", txtemail));Console.WriteLine(UpdateAccProfile.ToString());

Output:

{  "_delete": [    "Test1",    "Test2",    "Test3"  ],  "birthday": "2011-05-06",  "email": "dude@test.com"}

Also, for future reference, if you are getting an exception in your code, it is helpful if you say in your question exactly what the exception is, so that we don't have to guess. It makes it easier for us to help you.


// array of animalsvar animals = new[] { "cat", "dog", "monkey" };// our profile objectvar jProfile = new JObject        {            { "birthday", "2011-05-06" },            { "email", "dude@test.com" }        };// Add the animals to the profile JObjectjProfile.Add("animals", JArray.FromObject(animals));Console.Write(jProfile.ToString());

Outputs:

{      "birthday": "2011-05-06",  "email": "dude@test.com",  "animals": [    "cat",    "dog",    "monkey"  ]}


var jObject = new JObject();jObject.Add("birthday", "2011-05-06");jObject.Add("email", "dude@test.com");var items = new [] { "Item1", "Item2", "Item3" };var jSonArray = JsonConvert.SerializeObject(items);var jArray = JArray.Parse(jSonArray);jObject.Add("_delete", jArray);