This C# program demonstrates how to create, access, and modify a JSON document dynamically with the Newtonsoft Json package. Newtonsoft.json is a Nuget package that must be installed in order to run this program.
using System; // Requires Nuget Newtonsoft.Json package using Newtonsoft.Json.Linq; namespace JsonDynamicUsage { internal class Program { static void Main(string[] args) { var qJsonObject = new JObject(); // Not dynamically added qJsonObject.Add("Scripture", new JObject()); // Get the dynamic JObject version, which allows us to add properties like JavaScript dynamic qDynScriptureObject = (JObject)qJsonObject.GetValue("Scripture"); qDynScriptureObject.Ecclesiates1 = "What does man gain by all the toil at which he toils under the sun?"; qDynScriptureObject.Ecclesiates3 = "For everything there is a season, and a time for every matter under heaven:"; // A dynamic array means that we can put any type into the array qDynScriptureObject.Seasons = new JArray() as dynamic; qDynScriptureObject.Seasons.Add("a time to be born, and a time to die;"); qDynScriptureObject.Seasons.Add("a time to kill, and a time to heal;"); qDynScriptureObject.Seasons.Add("a time to rend, and a time to sew;"); dynamic qDynMainObject = qJsonObject; qDynMainObject.Beattitudes = new JArray() as dynamic; qDynMainObject.Beattitudes.Add("Blessed are the poor in spirit: for theirs is the kingdom of God."); qDynMainObject.Beattitudes.Add("Blessed are the pure of heart: for they shall see God."); var qAnotherObject = new JObject { { "Cardinal", new JArray() }, { "Theological", new JArray() } }; qDynMainObject.Add("Virtues", qAnotherObject); ((JArray)qJsonObject.SelectToken("Virtues.Cardinal")).Add("Fortitude"); ((JArray)qJsonObject.SelectToken("Virtues.Cardinal")).Add("Temperance"); ((JArray)qJsonObject.SelectToken("Virtues.Cardinal")).Add("Wisdom"); ((JArray)qJsonObject.SelectToken("Virtues.Cardinal")).Add("Prudence"); ((JArray)qJsonObject.SelectToken("Virtues.Theological")).Add("Faith"); ((JArray)qJsonObject.SelectToken("Virtues.Theological")).Add("Hope"); // Alternative method ((JArray)qJsonObject["Virtues"]["Theological"]).Add("Charity"); var qAnotherArray = JArray.Parse(@"[ ""You shall not murder"", ""You shall not steal"" ]"); qDynMainObject.Add("Commandments", qAnotherArray); Console.WriteLine(qJsonObject.ToString()); } } }
{ "Scripture": { "Ecclesiates1": "What does man gain by all the toil at which he toils under the sun?", "Ecclesiates3": "For everything there is a season, and a time for every matter under heaven:", "Seasons": [ "a time to be born, and a time to die;", "a time to kill, and a time to heal;", "a time to rend, and a time to sew;" ] }, "Beattitudes": [ "Blessed are the poor in spirit: for theirs is the kingdom of God.", "Blessed are the pure of heart: for they shall see God." ], "Virtues": { "Cardinal": [ "Fortitude", "Temperance", "Wisdom", "Prudence" ], "Theological": [ "Faith", "Hope", "Charity" ] }, "Commandments": [ "You shall not murder", "You shall not steal" ] } Press any key to continue . . .
© 20072025 XoaX.net LLC. All rights reserved.