Json.NET & Oxygene – How to Serialize an Object ?

One of the ways to serialize an object to JSON string in Oxygene # in the Json.NET is using the SerializeObject method defined in the JsonConvert method.

The JsonConvert class provides an easy to use wrapper class and method over the JsonSerializer.

How to Serialize an Object in Oxygene using Json.NET ?

Below is the sample code snippet demonstrating the usage of JsonConvert.SerializeObject method in C# for serialization. The SerializeObject method has 7 overloads option.

class method SerializeObject(value: Object): String;
begin
end;

class method SerializeObject(value: Object; converters: array of JsonConverter): String;
begin
end;

class method SerializeObject(value: Object; settings: JsonSerializerSettings): String;
begin
end;

class method SerializeObject(value: Object; formatting: Formatting): String;
begin
end;

class method SerializeObject(value: Object; formatting: Formatting; converters: array of JsonConverter): String;
begin
end;

class method SerializeObject(value: Object; &type: &Type; settings: JsonSerializerSettings): String;
begin
end;

class method SerializeObject(value: Object; formatting: Formatting; settings: JsonSerializerSettings): String;
begin
end;

class method SerializeObject(value: Object; &type: &Type; formatting: Formatting; settings: JsonSerializerSettings): String;
begin
end;

The below code uses the parameterized method which uses the Formatting as the second parameter.

namespace ACConsoleOxygene;
interface

uses
  System,
  System.Collections.Generic,
  Newtonsoft.Json;

type
  Program = class
  private
    class method Main(args: array of String);
  end;

  Employee = public class
  public
    property Name: String;
    property IsPermanent: Boolean;
    property Departments: List<String>;
  end;

implementation

class method Program.Main(args: array of String);
begin
  var emp: Employee := new Employee();
  emp.Name := 'Abundantcode';
  emp.IsPermanent := true;
  emp.Departments := new List<String>();
  emp.Departments.Add('Technology');
  emp.Departments.Add('Product Engineering');
  //  Serializing the employee object to Json string
  var jsonTxt: String := JsonConvert.SerializeObject(emp, Formatting.Indented);
  Console.WriteLine(jsonTxt);
  Console.ReadLine();
end;

The output of the above code is

{
  "Name": "Abundantcode",
  "IsPermanent": true,
  "Departments": [
    "Technology",
    "Product Engineering"
  ]
}