I have a json structure like this:
var json =
{
"report": {},
"expense": {},
"invoices": {},
"projects": {},
"clients": {},
"settings": {
"users": {},
"companies": {},
"templates": {},
"translations": {},
"license": {},
"backups": {},
}
}
I would like to add a new empty Object like "report":{} to the json
My C# code is like this:
JObject json = JObject.Parse(File.ReadAllText("path"));
json.Add(new JObject(fm.Name));
But it it gives me a exception:
Can not add Newtonsoft.Json.Linq.JValue to Newtonsoft.Json.Linq.JObject
So, how can I add a new and empty JObject to the json
Thanks in advance
You are getting this error because you are trying to construct a JObject
with a string (which gets converted into a JValue
). 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
).
To make it work, change your second line to this:
json.Add(new JProperty(fm.Name, new JObject()));
Working demo: https://dotnetfiddle.net/cjtoJn