C# 如何在C中添加类似于JSON格式的逗号分隔值#
我试图通过读取csv并填充数据表来创建类似于此的JSON兼容输出。然后我循环创建指定格式(如下所述) 我要找的是在开始和结束的大括号中添加逗号分隔的值,如下面为checkins、teamsize和checkintimes列指定的格式。然而,我无法复制相同的 格式:C# 如何在C中添加类似于JSON格式的逗号分隔值#,c#,C#,我试图通过读取csv并填充数据表来创建类似于此的JSON兼容输出。然后我循环创建指定格式(如下所述) 我要找的是在开始和结束的大括号中添加逗号分隔的值,如下面为checkins、teamsize和checkintimes列指定的格式。然而,我无法复制相同的 格式: "name":"aaa_aaaurf","region":"Financial & Risk - ALL","checkins":[[1,"0"],[2,"0"],[3,"3"],[4,"0"],[5,"0"],[6,"0"]
"name":"aaa_aaaurf","region":"Financial & Risk - ALL","checkins":[[1,"0"],[2,"0"],[3,"3"],[4,"0"],[5,"0"],[6,"0"],[7,"0"],[8,"0"],[9,"0"],[10,"0"],[11,"0"],[12,"2"]],"teamsize":[[1,"2"],[2,"2"],[3,"2"],[4,"2"],[5,"0"],[6,"0"],[7,"0"],[8,"0"],[9,"0"],[10,"0"],[11,"3"],[12,"3"]],"Checkintimes":[[1,"0"],[2,"0"],[3,"0"],[4,"0"],[5,"0"],[6,"0"],[7,"0"],[8,"0"],[9,"0"],[10,"0"],[11,"0"],[12,"62"]
我的实现代码是:
string repository = null;
string tempsbu;
int index=0;
string sbu=null;
List<string> checkins = new List<string>();
List<string> builds = new List<string>();
List<string> teamsize = new List<string>();
List<string> checkintimes = new List<string>();
List<string> Consdata = new List<string>();
string CSVFilePathName = @"D:\info.csv";
string[] Lines = File.ReadAllLines(CSVFilePathName);
string[] Fields;
Fields = Lines[0].Split(new char[] { ',' });
int Cols = Fields.GetLength(0);
DataTable dt = new DataTable();
//1st row must be column names; force lower case to ensure matching later on.
for (int i = 0; i < Cols; i++)
dt.Columns.Add(Fields[i].ToLower(), typeof(string));
DataRow Row;
for (int i = 1; i < Lines.GetLength(0); i++)
{
Fields = Lines[i].Split(new char[] { ',' });
Row = dt.NewRow();
for (int f = 0; f < Cols; f++)
Row[f] = Fields[f];
dt.Rows.Add(Row);
}
for (int row = 0; row < dt.Rows.Count; row++)
{
if (row==0)
{
repository = dt.Rows[row]["repository"].ToString();
}
if (dt.Rows[row]["repository"].ToString() != repository)
{
if ((row > 0) || (row == dt.Rows.Count))
{
index = 1;
Consdata.Add("name:" + repository + "," + "region:" + sbu + "checkins:" + checkins.ToString() + "teamsize:" + teamsize.ToString() + "Checkintimes:" + checkintimes.ToString());
repository = dt.Rows[row]["repository"].ToString();
sbu = dt.Rows[row]["BusinessUnit"].ToString();
checkins.Add("[" + index + "," + dt.Rows[row]["AvgCheckinCount"].ToString() + "]");
checkintimes.Add("[" + index + "," + dt.Rows[row]["MeanBuildTimeHrs"].ToString() + "]");
teamsize.Add("[" + index + "," + dt.Rows[row]["TeamSize"].ToString() + "]");
}
}
else
{
if (row == 0)
{
index = 1;
}
else
{
index = index + 1;
}
repository = dt.Rows[row]["repository"].ToString();
sbu = dt.Rows[row]["BusinessUnit"].ToString();
checkins.Add("[" + index + "," + dt.Rows[row]["AvgCheckinCount"].ToString() + "]");
checkintimes.Add("[" + index + "," + dt.Rows[row]["MeanBuildTimeHrs"].ToString() + "]");
teamsize.Add("[" + index + "," + dt.Rows[row]["TeamSize"].ToString() + "]");
}
}
My csv values are:
repository,modmonth,month,year,MeanBuildTimeHrs,AvgCheckinCount,TeamSize,BusinessUnit
aaa_aaaurf,1,6,2013,0,0,2,Financial & Risk - ALL
aaa_aaaurf,2,7,2013,0,0,2,Financial & Risk - ALL
aaa_aaaurf,3,8,2013,0,3,2,Financial & Risk - ALL
aaa_aaaurf,4,9,2013,0,0,2,Financial & Risk - ALL
aaa_aaaurf,5,10,2013,0,0,0,Financial & Risk - ALL
aaa_aaaurf,6,11,2013,0,0,0,Financial & Risk - ALL
aaa_aaaurf,7,12,2013,0,0,0,Financial & Risk - ALL
aaa_aaaurf,8,1,2014,0,0,0,Financial & Risk - ALL
aaa_aaaurf,9,2,2014,0,0,0,Financial & Risk - ALL
aaa_aaaurf,10,3,2014,0,0,0,Financial & Risk - ALL
aaa_aaaurf,11,4,2014,0,0,3,Financial & Risk - ALL
aaa_aaaurf,12,5,2014,62,2,3,Financial & Risk - ALL
aaa_ecso,1,6,2013,7,12,14,Financial & Risk - ALL
aaa_ecso,2,7,2013,6,37,10,Financial & Risk - ALL
aaa_ecso,3,8,2013,4,32,10,Financial & Risk - ALL
aaa_ecso,4,9,2013,4,57,10,Financial & Risk - ALL
aaa_ecso,5,10,2013,3,49,13,Financial & Risk - ALL
aaa_ecso,6,11,2013,2,62,13,Financial & Risk - ALL
aaa_ecso,7,12,2013,3,41,13,Financial & Risk - ALL
aaa_ecso,8,1,2014,2,51,16,Financial & Risk - ALL
aaa_ecso,9,2,2014,2,54,16,Financial & Risk - ALL
aaa_ecso,10,3,2014,2,56,16,Financial & Risk - ALL
aaa_ecso,11,4,2014,3,31,16,Financial & Risk - ALL
aaa_ecso,12,5,2014,0,38,16,Financial & Risk - ALL
string repository=null;
字符串tempsbu;
int指数=0;
字符串sbu=null;
列表签入=新列表();
列表构建=新建列表();
List teamsize=新列表();
列表检查时间=新列表();
List Consdata=新列表();
字符串CSVFilePathName=@“D:\info.csv”;
string[]Lines=File.ReadAllLines(CSVFilePathName);
字符串[]字段;
字段=行[0]。拆分(新字符[]{',});
int Cols=Fields.GetLength(0);
DataTable dt=新的DataTable();
//第一行必须是列名;强制使用小写字母,以确保以后匹配。
for(int i=0;i0)| |(行==dt.Rows.Count))
{
指数=1;
Consdata.Add(“名称:“+repository+”,“+”区域:“+sbu+”签入:“+checkins.ToString()+”团队大小:“+teamsize.ToString()+”签入时间:“+Checkintimes.ToString()”);
repository=dt.Rows[row][“repository”].ToString();
sbu=dt.Rows[row][“BusinessUnit”].ToString();
Add(“[”+index+”,“+dt.Rows[row][“AvgCheckinCount”].ToString()+“]”);
添加(“[”+index+“,“+dt.Rows[row][“MeanBuildTimeHrs”].ToString()+“]”);
teamsize.Add(“[”+index+“,“+dt.Rows[row][“teamsize”].ToString()+“]”);
}
}
其他的
{
如果(行==0)
{
指数=1;
}
其他的
{
指数=指数+1;
}
repository=dt.Rows[row][“repository”].ToString();
sbu=dt.Rows[row][“BusinessUnit”].ToString();
Add(“[”+index+”,“+dt.Rows[row][“AvgCheckinCount”].ToString()+“]”);
添加(“[”+index+“,“+dt.Rows[row][“MeanBuildTimeHrs”].ToString()+“]”);
teamsize.Add(“[”+index+“,“+dt.Rows[row][“teamsize”].ToString()+“]”);
}
}
我的csv值是:
存储库、modmonth、month、year、MeanBuildTimeHrs、AvgcheckCount、团队规模、业务单元
aaa_aaaurf,1,62013,0,0,2,财务和风险-全部
aaa_aaaurf,2,72013,0,0,2,财务和风险-全部
aaa_aaaurf,3,82013,0,3,2,财务和风险-全部
aaa_aaaurf,4,92013,0,0,2,财务和风险-全部
aaa_aaaurf,5,102013,0,0,0,财务和风险-全部
aaa_aaaurf,6112013,0,0,0,财务和风险-全部
aaa_aaaurf,7,122013,0,0,0,财务和风险-全部
aaa_aaaurf,8,12014,0,0,0,金融和风险-全部
aaa_aaaurf,9,22014,0,0,0,金融和风险-全部
aaa_aaaurf,10,32014,0,0,0,金融和风险-全部
aaa_aaaurf,11,42014,0,0,3,财务和风险-全部
aaa_aaaurf,12,52014,62,2,3,财务和风险-全部
aaa_ecso,1,62013,7,12,14,财务和风险-所有
aaa_ecso,2,72013,6,37,10,金融和风险-全部
aaa_ecso,3,82013,4,32,10,财务和风险-所有
aaa_ecso,4,92013,4,57,10,财务和风险-所有
aaa_ecso,5,102013,3,49,13,财务和风险-所有
aaa_ecso,6,112013,2,62,13,财务和风险-所有
aaa_ecso,7,122013,3,41,13,财务和风险-全部
aaa_ecso,8,12014,2,51,16,金融和风险-所有
aaa_ecso,9,22014,2,54,16,金融和风险-所有
aaa_ecso,10,32014,2,56,16,金融和风险-所有
aaa_ecso,11,42014,3,31,16,财务和风险-所有
aaa_ecso,12,52014,0,38,16,金融和风险-全部
您使用的是一个特殊字符“[”。您应该在该字符之前使用“\”
例如:
checkins.Add("\\[" + index + ",\\"" + dt.Rows[row]["AvgCheckinCount"].ToString() + "\\]");
checkintimes.Add("\\[" + index + ",\\"" + dt.Rows[row]["MeanBuildTimeHrs"].ToString() + "\\]");
teamsize.Add("\\[" + index + ",\\"" + dt.Rows[row]["TeamSize"].ToString() + "\\]");`
为什么不使用并输出真正的JSON?将CSV转换为对象模型,然后使用JSON库输出为JSON。你所做的很奇怪,感谢链接。Moshe,我有一个查询。我们如何将这样的集合添加到:[1,0],[2,1],[3,0]…[12,0]。即使我的对象中有一个列表。