using System.Collections;
using System.Collections.Generic;
public static void Main()
typeof(ChoJSONReader).GetAssemblyVersion().Print();
""BrandId"": ""998877665544332211"",
""Categories"": [ ""112233445566778899"" ],
""Description"": { ""vi"": ""Phone"" },
""Value"": ""987654321"",
""Description"": { ""vi"": ""Phone"" },
using (var r = ChoJSONReader.LoadText(json)
.Configure(c => c.DefaultArrayHandling = true)
.Configure(c => c.FlattenNode = true)
.Configure(c => c.FlattenByJsonPath = "$.Contact[*]")
.Configure(c => c.NestedKeySeparator = '~')
.Configure(c => c.NestedColumnSeparator = '.')
var dt = r.AsDataTable();
Console.WriteLine("Using FlattenByJsonPath is fine, but cannot get root information (BrandId) ");
using (var r = ChoJSONReader.LoadText(json)
.Configure(c => c.DefaultArrayHandling = true)
.Configure(c => c.FlattenNode = true)
.Configure(c => c.FlattenByNodeName = "Contact")
.Configure(c => c.NestedKeySeparator = '~')
.Configure(c => c.NestedColumnSeparator = '.')
var dt = r.AsDataTable();
Console.WriteLine("Using FlattenByNodeName neither gets root information (BrandId) nor middle information");