How to add JArray
into JObject
? I am getting an exception when changing the jarrayObj
into JObject
.
parameterNames = "Test1,Test2,Test3"; JArray jarrayObj = new JArray(); foreach (string parameterName in parameterNames) { jarrayObj.Add(parameterName); } JObject ObjDelParams = new JObject(); ObjDelParams["_delete"] = jarrayObj; JObject UpdateAccProfile = new JObject( ObjDelParams, new JProperty("birthday", txtBday), new JProperty("email", txtemail))
I need output in this form:
{ "_delete": ["Test1","Test2","Test3"], "birthday":"2011-05-06", "email":"[email protected]" }
JArray addresses = new JArray(); foreach (AddressModel address in contactAddresses) { addresses. Add(JObject. Parse( @"{""street"":""" + address. Street + @"""city"":""" + address.
A JObject cannot directly contain a JValue , nor another JObject , for that matter; it can only contain JProperties (which can, in turn, contain other JObjects , JArrays or JValues ).
JArray(Object[]) Initializes a new instance of the JArray class with the specified content. JArray(JArray) Initializes a new instance of the JArray class from another JArray object.
JObject. It represents a JSON Object. It helps to parse JSON data and apply querying (LINQ) to filter out required data. It is presented in Newtonsoft.
I see two problems with your code as you posted it.
parameterNames
needs to be an array of strings, not just a single string with commas.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 = "[email protected]"; 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": "[email protected]" }
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 animals var animals = new[] { "cat", "dog", "monkey" }; // our profile object var jProfile = new JObject { { "birthday", "2011-05-06" }, { "email", "[email protected]" } }; // Add the animals to the profile JObject jProfile.Add("animals", JArray.FromObject(animals)); Console.Write(jProfile.ToString());
Outputs:
{ "birthday": "2011-05-06", "email": "[email protected]", "animals": [ "cat", "dog", "monkey" ] }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With