http://stackoverflow.com/questions/43877636/remove-nesting-arrays-when-deserializing-json-using-json-net

CSharp · Console

/Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using Newtonsoft.Json.Linq;
					
public class Program
{
	public static void Main()
	{
		string json = @"
            {
              ""CustomData"": [
                {
                  ""Wrapper"": [
                    {
                      ""OptionalDataSet1"": [
                        {
                          ""ItemA"": ""Basic string""
                        },
                        {
                          ""ItemB"": ""Another basic string""
                        }
                      ]
                    }
                  ]
                }
              ]
            }";
		
	
		Dictionary<string, string> optionalDataSet1 = Deserialize(json);
		
		foreach (var kvp in optionalDataSet1)
		{
			Console.WriteLine(kvp.Key + ": " + kvp.Value);
		}
	}
	
	public static Dictionary<string, string> Deserialize(string json)
	{
		return JObject.Parse(json)
			.SelectToken("CustomData[0].Wrapper[0].OptionalDataSet1")
			.Children<JObject>()
			.SelectMany(jo => jo.Properties())
			.ToDictionary(jp => jp.Name, jp => (string)jp.Value);
	}
	
}
;