https://stackoverflow.com/questions/53271154

CSharp · Console

/Program.cs

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using Newtonsoft.Json;
					
public class Program
{
	public static void Main()
	{
		DataTable dataTable = new DataTable();
		dataTable.Columns.Add("Address");
		dataTable.Columns.Add("BodyOverride");
		dataTable.Columns.Add("ChannelType");
		dataTable.Rows.Add("+1713XXXXXXX", "sent", "SMS");
		dataTable.Rows.Add("+1832XXXXXXX", "this is a text from PINPOINT", "SMS");

		var payload = new Payload
		{
			Addresses = dataTable.Rows
				.Cast<DataRow>()
				.ToDictionary(row => (string)row["Address"],
							  row => new Item
							  {
								  BodyOverride = (string)row["BodyOverride"],
								  ChannelType = (string)row["ChannelType"]
							  })
		};

		string json = JsonConvert.SerializeObject(payload, Formatting.Indented);
		Console.WriteLine(json);
	}
}

public class Payload
{
	public Dictionary<string, Item> Addresses { get; set; }
}

public class Item
{
	public string BodyOverride { get; set; }
	public string ChannelType { get; set; }
}
;