我想知道是否有人编写了一个实用程序,使用C#将CSV文件转换为Json.从计算器前一个问题,我知道这个漂亮实用的- https://github.com/cparker15/csv-to-json而且目前我打算提及,但现有的C#实现将是非常有益!谢谢!
我最近需要将数据表序列化为JSON.我在哪里我们仍然在.Net 2.0,所以我不能在.Net 3.5中使用JSON序列化器.我想这一定是有人做过,所以我去网上找,并发现了一个数量的不同 选项.其中一些依赖于一个额外的库,我很难在这里推进.其他人需要先转换List<Dictionary<>>,这似乎有点尴尬和不必要.另一个处理所有值,如字符串.出于某种原因,我无法真正落后于他们,所以我决定推出自己的,我发布在下面.
正如您从阅读//TODO评论中看到的那样,它在一些地方是不完整的.这段代码已经在生产中,所以它在基本意义上"起作用".它不完整的地方是我们知道我们的生产数据当前不会命中它的地方(数据库中没有时间跨度或字节数组).我在这里发帖的原因是我觉得这可能会更好一些,我希望能帮助完成和改进这段代码.欢迎任何投入.
请注意,此功能内置于.Net 3.5及更高版本中,因此今天使用此代码的唯一原因是,您仍然只能使用.Net 2.0.即便如此,JSON.Net已成为此类事物的goto库.
public static class JSONHelper
{
public static string FromDataTable(DataTable dt)
{
string rowDelimiter = "";
StringBuilder result = new StringBuilder("[");
foreach (DataRow row in dt.Rows)
{
result.Append(rowDelimiter);
result.Append(FromDataRow(row));
rowDelimiter = ",";
}
result.Append("]");
return result.ToString();
}
public static string FromDataRow(DataRow row)
{
DataColumnCollection cols = row.Table.Columns;
string colDelimiter = "";
StringBuilder result = new StringBuilder("{");
for (int i = 0; i < …Run Code Online (Sandbox Code Playgroud) 我有一个数据表whis只有一行,看起来像
America | Africa | Japan |
-------------------------------------------------------------
{"Id":1,"Title":"Ka"} | {"Id":2,"Title":"Sf"} | {"Id":3,"Title":"Ja","Values":{"ValID":4,"Type":"Okinawa"}}
Run Code Online (Sandbox Code Playgroud)
数据列是美国,非洲,日本
现在我想将数据表转换为JSon,使json看起来像
{
"America": {
"Id": 1,
"Title": "Ka"
},
"Africa": {
"Id": 2,
"Title": "Sf"
},
"Japan": {
"Id": 3,
"Title": "Ja",
"Values": {
"ValID": 4,
"Type": "Okinawa"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的尝试是,
string js = JSonConvverter.Serializeobject(datatable);
var objType = JObject.Parse(js);
Run Code Online (Sandbox Code Playgroud)
但它没有用.
任何帮助将不胜感激.谢谢!