Json轉換(三)
///
/// Datatable轉換為Json
///
/// DataTable
/// total的值
/// json的名稱
///json字串
public static string DataTableToJson(DataTable dt, int rowCount, string jsonName)
{
StringBuilder jsonString = new StringBuilder();
if (string.IsNullOrEmpty(jsonName))
{
jsonName = "rows";
}
jsonString.Append("{\"total\":" + rowCount + ",\"" + jsonName + "\":[");
DataRowCollection drc = dt.Rows;
if (drc.Count > 0)
{
for (int i = 0; i < drc.Count; i++)
{
jsonString.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
string strKey = dt.Columns[j].ColumnName;
string strValue = drc[i][j].ToString();
Type type = dt.Columns[j].DataType;
jsonString.Append("\"" + strKey + "\":");
strValue = StringFormat(strValue, type);
if (j < dt.Columns.Count - 1)
{
jsonString.Append(strValue + ",");
}
else
{
jsonString.Append(strValue);
}
}
jsonString.Append("},");
}
}
else
{
jsonString.Append("{");
}
jsonString.Remove(jsonString.Length - 1, 1);
jsonString.Append("]}");
return jsonString.ToString();
}
///
/// Datatable轉換為樹狀Json
///
///json字串
public static string DataTableToTreeJson(DataTable dt)
{
bool flag = false;
StringBuilder jsonString = new StringBuilder();
jsonString.Append("[");
DataRowCollection drc = dt.Rows;
if (drc.Count > 0)
{
for (int i = 0; i < drc.Count; i++)
{
jsonString.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
string strKey = dt.Columns[j].ColumnName;
string strValue = drc[i][j].ToString();
Type type = dt.Columns[j].DataType;
jsonString.Append("\"" + strKey + "\":");
strValue = StringFormat(strValue, type);
if (j < dt.Columns.Count - 1)
{
jsonString.Append(strValue + ",");
}
else
{
jsonString.Append(strValue);
}
}
if (i + 1 < drc.Count)
{
if (drc[i + 1][0].ToString() == "1" && flag == true)
{
jsonString.Append("}]},");
flag = false;
}
else if (drc[i + 1][0].ToString() == "1" && flag == false)
{
jsonString.Append(",\"children\":[]},");
}
else
{
if (drc[i + 1][0].ToString() != drc[i][0].ToString())
jsonString.Append(",\"state\":\"closed\",\"children\":[");
else
jsonString.Append("},");
flag = true;
}
}
else
{
if (flag == true)
jsonString.Append("}]},");
else
jsonString.Append(",\"children\":[]},");
}
}
}
else
{
jsonString.Append("{");
}
jsonString.Remove(jsonString.Length - 1, 1);
jsonString.Append("]");
return jsonString.ToString();
}
注:Json轉換(一二三)位於同一個Static類中
/// Datatable轉換為Json
///
/// DataTable
/// total的值
/// json的名稱
///
public static string DataTableToJson(DataTable dt, int rowCount, string jsonName)
{
StringBuilder jsonString = new StringBuilder();
if (string.IsNullOrEmpty(jsonName))
{
jsonName = "rows";
}
jsonString.Append("{\"total\":" + rowCount + ",\"" + jsonName + "\":[");
DataRowCollection drc = dt.Rows;
if (drc.Count > 0)
{
for (int i = 0; i < drc.Count; i++)
{
jsonString.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
string strKey = dt.Columns[j].ColumnName;
string strValue = drc[i][j].ToString();
Type type = dt.Columns[j].DataType;
jsonString.Append("\"" + strKey + "\":");
strValue = StringFormat(strValue, type);
if (j < dt.Columns.Count - 1)
{
jsonString.Append(strValue + ",");
}
else
{
jsonString.Append(strValue);
}
}
jsonString.Append("},");
}
}
else
{
jsonString.Append("{");
}
jsonString.Remove(jsonString.Length - 1, 1);
jsonString.Append("]}");
return jsonString.ToString();
}
///
/// Datatable轉換為樹狀Json
///
///
public static string DataTableToTreeJson(DataTable dt)
{
bool flag = false;
StringBuilder jsonString = new StringBuilder();
jsonString.Append("[");
DataRowCollection drc = dt.Rows;
if (drc.Count > 0)
{
for (int i = 0; i < drc.Count; i++)
{
jsonString.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
string strKey = dt.Columns[j].ColumnName;
string strValue = drc[i][j].ToString();
Type type = dt.Columns[j].DataType;
jsonString.Append("\"" + strKey + "\":");
strValue = StringFormat(strValue, type);
if (j < dt.Columns.Count - 1)
{
jsonString.Append(strValue + ",");
}
else
{
jsonString.Append(strValue);
}
}
if (i + 1 < drc.Count)
{
if (drc[i + 1][0].ToString() == "1" && flag == true)
{
jsonString.Append("}]},");
flag = false;
}
else if (drc[i + 1][0].ToString() == "1" && flag == false)
{
jsonString.Append(",\"children\":[]},");
}
else
{
if (drc[i + 1][0].ToString() != drc[i][0].ToString())
jsonString.Append(",\"state\":\"closed\",\"children\":[");
else
jsonString.Append("},");
flag = true;
}
}
else
{
if (flag == true)
jsonString.Append("}]},");
else
jsonString.Append(",\"children\":[]},");
}
}
}
else
{
jsonString.Append("{");
}
jsonString.Remove(jsonString.Length - 1, 1);
jsonString.Append("]");
return jsonString.ToString();
}
注:Json轉換(一二三)位於同一個Static類中
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28699126/viewspace-759365/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 自寫Json轉換工具JSON
- 資料集轉換JSONJSON
- eval() JSON轉換為物件JSON物件
- 將json資料轉換為Python字典將json資料轉換為Python字典JSONPython
- JSON字串與HashMap相互轉換JSON字串HashMap
- json字串 轉換為陣列JSON字串陣列
- json字串與物件互相轉換JSON字串物件
- C#中JSON轉換類C#JSON
- 最有效的ResultSet轉換為JSON?JSON
- Json,String,Map之間的轉換JSON
- eval() JSON轉換 小括號 () 作用JSON
- 【python】str與json型別轉換PythonJSON型別
- JSON字串轉換為物件直接量JSON字串物件
- js 陣列,字串,json互相轉換陣列字串JSON
- Spring Boot之自定義JSON轉換器Spring BootJSON
- jenkins:實現Jenkinsfile與Json的轉換JenkinsJSON
- Python將xml格式轉換為json格式PythonXMLJSON
- JavaScript將物件轉換為JSON格式字串JavaScript物件JSON字串
- eval()將JSON格式字串轉換為物件JSON字串物件
- fastjson轉換json時,碰到的那些首字母大小寫轉換的坑!ASTJSON
- Python字典格式與JSON格式的相互轉換PythonJSON
- Python JSON 使用指南:解析和轉換資料PythonJSON
- 為啥我的字典資料轉換不成 json?JSON
- typeof-jsonc 將 JSONC/JSON 轉換為 TypeScript 宣告JSONTypeScript
- Json和Map互轉,三個包(org.json/net.sf.json/com.google.gson)JSONGo
- 字串json陣列怎麼轉換成jsonobject型別字串JSON陣列Object型別
- Java中將Excel轉換為JSON的兩種方法JavaExcelJSON
- 把JSON資料格式轉換為Python的類物件JSONPython物件
- Eclipse安裝GSON,使用GSON轉換Java Object到JSONEclipseJavaObjectJSON
- JS字串轉換為JSON的四種方法筆記字串JSON筆記
- JS實現JSON物件與URL引數的相互轉換JSON物件
- 如何使用python把json檔案轉換為csv檔案PythonJSON
- Antd:Tree樹形控制元件資料解析(JSON轉換)控制元件JSON
- eval()進行json轉換時新增小括號()的作用JSON
- iptables(三)網路地址轉換NAT
- json字串轉義格式化後再轉換處理demo StringEscapeUtils.unescapeJavaJSON字串Java
- json轉化JSON
- JSON轉ExcelJSONExcel
- Json物件與Json字串互轉JSON物件字串