This code reads a CSV file named “data.csv” in C# and converts it into a DataTable. Then it uses the JsonConvert.SerializeObject() method from Newtonsoft.Json library from NuGet packages to convert the DataTable to a JSON string. The JSON string is then written to a file named “data.json” using the File.WriteAllText() method.
using System;
using System.IO;
using System.Linq;
using System.Data;
using Newtonsoft.Json;
class Program
{
static void Main()
{
// Read the CSV file into a DataTable
DataTable table = CsvToDataTable("data.csv");
// Convert the DataTable to a JSON string
string json = JsonConvert.SerializeObject(table, Formatting.Indented);
// Write the JSON string to a file
File.WriteAllText("data.json", json);
}
static DataTable CsvToDataTable(string filePath)
{
DataTable table = new DataTable();
// Read the CSV file into a string array
string[] csvData = File.ReadAllLines(filePath);
// Get the column names
string[] columnNames = csvData[0].Split(',');
foreach (string columnName in columnNames)
table.Columns.Add(columnName);
// Add the data rows
for (int i = 1; i < csvData.Length; i++)
{
string[] data = csvData[i].Split(',');
table.Rows.Add(data);
}
return table;
}
}
Line by Line Explanation of Code:
- The using statements at the top of the file import the necessary namespaces for working with data tables, files, and JSON serialization.
- The Main() method is called when the program starts.
- The CsvToDataTable() method is called with the file path “data.csv” as an argument and returns a DataTable with the data from the CSV file.
- The DataTable is converted to a JSON string using the JsonConvert.SerializeObject() method.
- The JSON string is written to a file named “data.json” using the File.WriteAllText() method.
- The CsvToDataTable method starts by initializing a new DataTable.
- It reads all lines of the CSV file into a string array called csvData.
- It splits the first element of the array, which contains the column names, by the comma separator to get the column names.
- It adds the column names to the DataTable.
- It loops through the remaining elements of the array, which contain the data rows, and splits each element by the comma separator to get the data fields.
- It adds the data fields as a new row to the DataTable.
- Finally, it returns the DataTable.
- This code allows you to convert the data from a CSV file to a JSON file in C# and you can use this JSON in various ways like sending it to the server, or using it for some other purpose.
