C#
1.DataTable转json
自制一个DataTable,并填充内容
using System;
using System.Data;
using System.Text;
namespace ConsoleCTest
{
class Program
{
static void Main(string[] args)
{
DataTable dt = new DataTable();
//设置表的结构
dt.Columns.Add(new DataColumn("id", typeof(int)));
dt.Columns.Add(new DataColumn("name", typeof(string)));
dt.Columns.Add(new DataColumn("sex", typeof(string)));
dt.Columns.Add(new DataColumn("age", typeof(string)));
//赋值
dt.Rows.Add(dt.NewRow());
dt.Rows[0]["id"] = 1;
dt.Rows[0]["name"] = "小红";
dt.Rows[0]["sex"] = "女";
dt.Rows[0]["age"] = "20";
dt.Rows.Add(dt.NewRow());
dt.Rows[1]["id"] = 2;
dt.Rows[1]["name"] = "小明";
dt.Rows[1]["sex"] = "男";
dt.Rows[1]["age"] = "25";
dt.Rows.Add(dt.NewRow());
dt.Rows[2]["id"] = 3;
dt.Rows[2]["name"] = "小李";
dt.Rows[2]["sex"] = "男";
dt.Rows[2]["age"] = "22";
Console.Write(table2json(dt));
Console.Read();
}
/*
返回结果样式如下:
[
{
"columnName1":"value1",
"columnName2":"value2",
"columnName3":"value3",
},
{
"columnName1":"value4",
"columnName2":"value5",
"columnName3":"value6",
},
{
"columnName1":"value7",
"columnName2":"value8",
"columnName3":"value9",
}
]
*/
public static string table2json(DataTable dt)
{
StringBuilder sb = new StringBuilder("[");
for(int i = 0; i < dt.Rows.Count; i++)
{
sb.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
if (j == dt.Columns.Count - 1)
{
sb.Append("\""+dt.Columns[j].Caption + "\":\"" + dt.Rows[i][j].ToString()+"\"");
}
else
{
sb.Append("\"" + dt.Columns[j].Caption + "\":\"" + dt.Rows[i][j].ToString()+"\",");
}
}
if (i == dt.Rows.Count - 1)
{
sb.Append("}");
}
else
{
sb.Append("},");
}
}
sb.Append("]");
return sb.ToString();
}
}
}
控制台查看结果,可复制到相关json格式化网站格式化这些字符串,推荐https://tool.oschina.net/codeformat/json
DataTable就不浪费篇幅去做了,后面直接给出table2xml以及vb的相关代码
public static string table2xml(DataTable dt)
{
StringBuilder sb = new StringBuilder("");
sb.Append("<xml>");
for (int i = 0; i < dt.Rows.Count; i++)
{
sb.Append("<data>");
for (int j = 0; j < dt.Columns.Count; j++)
{
sb.Append("<" + dt.Columns[j].Caption + ">" + dt.Rows[i][j].ToString() + "</" + dt.Columns[j].Caption + ">");
}
sb.Append("</data>");
}
sb.Append("</xml>");
return sb.ToString();
}
VB
Sub Main()
Dim dt As DataTable = New DataTable()
dt.Columns.Add(New DataColumn("id", Type.GetType("System.Int32")))
dt.Columns.Add(New DataColumn("name", Type.GetType("System.String")))
dt.Columns.Add(New DataColumn("sex", Type.GetType("System.String")))
dt.Columns.Add(New DataColumn("age", Type.GetType("System.String")))
dt.Rows.Add(dt.NewRow())
dt.Rows(0)("id") = 1
dt.Rows(0)("name") = "小红"
dt.Rows(0)("sex") = "女"
dt.Rows(0)("age") = 15
dt.Rows.Add(dt.NewRow())
dt.Rows(1)("id") = 2
dt.Rows(1)("name") = "小明"
dt.Rows(1)("sex") = "男"
dt.Rows(1)("age") = 22
dt.Rows.Add(dt.NewRow())
dt.Rows(2)("id") = 3
dt.Rows(2)("name") = "小编"
dt.Rows(2)("sex") = "女"
dt.Rows(2)("age") = 20
Console.Write(table2xml(dt))
Console.Read()
End Sub
Public Function table2json(dt As DataTable) As String
Dim sb As StringBuilder = New StringBuilder("")
sb.Append("[")
For i = 0 To dt.Rows.Count - 1
sb.Append("{")
For j = 0 To dt.Columns.Count - 1
If j = dt.Columns.Count - 1 Then
sb.Append("""" + dt.Columns(j).Caption + """:""" + dt.Rows(i)(j).ToString() + """")
Else
sb.Append("""" + dt.Columns(j).Caption + """:""" + dt.Rows(i)(j).ToString() + """,")
End If
Next
If i = dt.Rows.Count - 1 Then
sb.Append("}")
Else
sb.Append("},")
End If
Next
sb.Append("]")
Return sb.ToString()
End Function
Public Function table2xml(dt As DataTable) As String
Dim sb As StringBuilder = New StringBuilder("")
sb.Append("<xml>")
For i = 0 To dt.Rows.Count - 1
sb.Append("<data>")
For j = 0 To dt.Columns.Count - 1
sb.Append("<" + dt.Columns(j).Caption + ">" + dt.Rows(i)(j).ToString() + "</" + dt.Columns(j).Caption + ">")
Next
sb.Append("</data>")
Next
sb.Append("</xml>")
Return sb.ToString()
End Function
结果展示: