6

How to Insert a Key Value Pair Into an Existing JSON in C#

 1 year ago
source link: https://code-maze.com/csharp-insert-a-key-value-pair-into-an-existing-json/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

How to Insert a Key Value Pair Into an Existing JSON in C#

Posted by Code Maze | Updated Date Feb 7, 2023 | 0

Code Maze Book Collection

Want to build great APIs? Or become even better at it? Check our Ultimate ASP.NET Core Web API program and learn how to create a full production-ready ASP.NET Core API using only the latest .NET technologies. Bonus materials (Security book, Docker book, and other bonus files) are included in the Premium package!

In this article, we are going to learn how to insert a key-value pair into an existing JSON object.

To download the source code for this article, you can visit our GitHub repository.

Let’s start.

Use Json.NET to Insert a Key Value Pair Into an Existing JSON

Json.NET is one of the most popular JSON frameworks for .NET and we are going to use it for the examples in this article.

To use Json.NET, we must include the Newtonsoft.Json package in our project:

dotnet add package Newtonsoft.Json
dotnet add package Newtonsoft.Json

After adding the package, we need to include a required namespace to be able to use it for serializing, deserializing, and manipulating the JSON:

using Newtonsoft.Json
using Newtonsoft.Json

Insert A String Value Using the Add Method

To start, let’s take a look at the JSON object we will be using throughout this article:

var json =
""FirstName"": ""Audrey"",
""LastName"": ""Spencer"",
""ContactDetails"": {
""Country"": ""Spain""
var json =
    @"{
        ""FirstName"": ""Audrey"",
        ""LastName"": ""Spencer"",
        ""ContactDetails"": {
            ""Country"": ""Spain""
        }
    }";

Now, we are going to show an example of how we can add a specified property name with a string value using JObject:

public JObject AddStringValue(string propertyName, string value)
var json = JObject.Parse(_json);
json.Add(propertyName, value);
return json;
public JObject AddStringValue(string propertyName, string value)
{
   var json = JObject.Parse(_json);
   json.Add(propertyName, value);

   return json;
}

We declare the AddStringValue a method that accepts two string parameters, the name of the property, and a new value. Inside the method, we parse the _json string and use the Add method to add the property name and the value for that property.

Now, let’s call this method from the Program class with the previous JSON:

var parser = new Parser(json);
var jasonUpdated = parser.AddStringValue("UserName", "Audrey_Spencer72");
Console.WriteLine(jasonUpdated);
var parser = new Parser(json);
var jasonUpdated = parser.AddStringValue("UserName", "Audrey_Spencer72");
Console.WriteLine(jasonUpdated);

First, we instantiate the Parser class. Then, we invoke the AddStringValue method to add a new key-value pair to the JSON:

"FirstName": "Audrey",
"LastName": "Spencer",
"ContactDetails": {
"Country": "Spain"
"UserName": "Audrey_Spencer72"
{
  "FirstName": "Audrey",
  "LastName": "Spencer",
  "ContactDetails": {
    "Country": "Spain"
  },
  "UserName": "Audrey_Spencer72"
}

As we can observe, the last key-value pair (UserName and its value), are added to an existing JSON.

Insert An Object Value Using the Add Method

We can use the Add method as well if we have an object that we want to add as a value inside the JSON object:

public JObject AddObjectValue(string propertyName, object value)
var json = JObject.Parse(_json);
json.Add(propertyName, JObject.FromObject(value));
return json;
public JObject AddObjectValue(string propertyName, object value)
{
   var json = JObject.Parse(_json);
   json.Add(propertyName, JObject.FromObject(value));

   return json;
}

Here, we accept two parameters, the string propertyName, and the object value. Then, inside the method, we parse the _json string again and then use the Add method to add the property name and the value for that property. Just this time, we have to use the JObject.FromObject method instead of just using the value as a parameter.

Wanna join Code Maze Team, help us produce more awesome .NET/C# content and get paid? >> JOIN US! <<

Now, we can call this method:

var parser = new Parser(json);
var jasonUpdated = parser.AddObjectValue("AdditionalDetails",
new AdditionalDetails { FullName = "Audrey Spencer", UserName = "Audrey_Spencer72" });
Console.WriteLine(jasonUpdated);
var parser = new Parser(json);
var jasonUpdated = parser.AddObjectValue("AdditionalDetails", 
    new AdditionalDetails { FullName = "Audrey Spencer", UserName = "Audrey_Spencer72" });
Console.WriteLine(jasonUpdated);

And inspect the result:

"FirstName": "Audrey",
"LastName": "Spencer",
"ContactDetails": {
"Country": "Spain"
"AdditionalDetails": {
"FullName": "Audrey Spencer",
"UserName": "Audrey_Spencer72"
{
  "FirstName": "Audrey",
  "LastName": "Spencer",
  "ContactDetails": {
    "Country": "Spain"
  },
  "AdditionalDetails": {
    "FullName": "Audrey Spencer",
    "UserName": "Audrey_Spencer72"
  }
}

In this case, we add the last key-value pair, AdditionalDetails and its value, into an existing JSON.

Insert a Key Value Pair Into an Existing JSON Directly

Now, we are going to show an example of how we can add a string value inside JSON directly:

public JObject InsertStringValue(string existingProperty, string newProperty, string value)
var json = JObject.Parse(_json);
json[existingProperty][newProperty] = value;
return json;
public JObject InsertStringValue(string existingProperty, string newProperty, string value)
{
   var json = JObject.Parse(_json);
   json[existingProperty][newProperty] = value;

   return json;
}

Now, we have theInsertStringValue method that receives three string parameters. Again, inside the method, we parse the _json string and access directly to JSON assignment with the json[existingProperty][newProperty] expression. With this expression, we can add a new key-value pair to a JSON’s property, which is a JSON itself (the ContactDetails property in our case).

Again, let’s call the method:

var parser = new Parser(json);
var jasonUpdated = parser.InsertStringValue("ContactDetails", "Address", "4455 Landing Lange");
Console.WriteLine(jasonUpdated);
var parser = new Parser(json);
var jasonUpdated = parser.InsertStringValue("ContactDetails", "Address", "4455 Landing Lange");
Console.WriteLine(jasonUpdated);

After we run our app, we can inspect the result:

"FirstName": "Audrey",
"LastName": "Spencer",
"ContactDetails": {
"Country": "Spain",
"Address": "4455 Landing Lange"
{
  "FirstName": "Audrey",
  "LastName": "Spencer",
  "ContactDetails": {
    "Country": "Spain",
    "Address": "4455 Landing Lange"
  }
}

We can confirm that the new Address key-value pair has been added.

Wanna join Code Maze Team, help us produce more awesome .NET/C# content and get paid? >> JOIN US! <<

Insert An Object Value Directly Into an Existing JSON

We have the same option if we want to add an object directly to an existing JSON:

public JObject InsertObjectValue(string existingProperty, string newProperty, object value)
var json = JObject.Parse(_json);
json[existingProperty][newProperty] = JObject.FromObject(value);
return json;
public JObject InsertObjectValue(string existingProperty, string newProperty, object value)
{
   var json = JObject.Parse(_json);
   json[existingProperty][newProperty] = JObject.FromObject(value);

   return json;
}

It’s similar to the previous method and we use the FromObject method to add an object value.

Let’s call this method:

var parser = new Parser(json);
var jasonUpdated = parser.InsertObjectValue("ContactDetails", "Address", new Address { Number = 123, Street = "Abc" });
Console.WriteLine(jasonUpdated);
var parser = new Parser(json);
var jasonUpdated = parser.InsertObjectValue("ContactDetails", "Address", new Address { Number = 123, Street = "Abc" });
Console.WriteLine(jasonUpdated);

Here, we demonstrate adding a new Address object by invoking the InsertObjectValue method.

Finally, we can inspect the result:

"FirstName": "Audrey",
"LastName": "Spencer",
"ContactDetails": {
"Country": "Spain",
"Address": {
"Number": 123,
"Street": "Abc"
{
  "FirstName": "Audrey",
  "LastName": "Spencer",
  "ContactDetails": {
    "Country": "Spain",
    "Address": {
      "Number": 123,
      "Street": "Abc"
    }
  }
}

We can verify the new Address key-value object.

Conclusion

In this article, we’ve learned different ways to insert a key-value pair into an existing JSON object. We’ve seen how to add both a string value and an object value to a JSON object either directly or by using the Add method. 

Code Maze Book Collection

Want to build great APIs? Or become even better at it? Check our Ultimate ASP.NET Core Web API program and learn how to create a full production-ready ASP.NET Core API using only the latest .NET technologies. Bonus materials (Security book, Docker book, and other bonus files) are included in the Premium package!

Share:


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK