Search code examples
c#jsonjson.net

How to add fields to JSON object without them existing?


I have a JObject that I am trying to add fields to in a way like this:

JObject dataObject = new JObject();
dataObject[currentSection][key] = val;

currentSection, key and val are all strings, I want it so when its all serialized at the end that it looks something like this:

{
    "currentSection": {
        "key": "value"
    }
}

How would I go about doing this?


Solution

  • You can use JObject.Add() method to add a property to JObject.

    1. Create a JObject for the nested object.

    2. Add property to the nested object.

    3. Add property with nested object to root JObject.

    JObject dataObject = new JObject();
            
    JObject nestedObj = new JObject();
    nestedObj.Add(key, val);
    
    dataObject.Add(currentSection, nestedObj);
    

    Demo @ .NET Fiddle