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
- Json轉換(二)JSON
- java json字串轉換為物件,轉換為listJavaJSON字串物件
- eval() JSON轉換為物件JSON物件
- json字串和json格式物件的轉換JSON字串物件
- Map 轉json資料,json資料轉換為MapJSON
- json字串與物件互相轉換JSON字串物件
- C#中JSON轉換類C#JSON
- json字串 轉換為陣列JSON字串陣列
- JSON字串與HashMap相互轉換JSON字串HashMap
- xStream完美轉換XML、JSONXMLJSON
- php陣列轉換為json,json又轉化為php物件。PHP陣列JSON物件
- JavaScript:如何將JSON物件轉換成JSON字串呢JavaScriptJSON物件字串
- Gson轉換 — json資料轉換為Object實體公共方法JSONObject
- 將json資料轉換為Python字典將json資料轉換為Python字典JSONPython
- eval() JSON轉換 小括號 () 作用JSON
- JSON字串轉換為物件直接量JSON字串物件
- js 陣列,字串,json互相轉換陣列字串JSON
- 將json字串轉換成list<T>JSON字串
- php json轉換成陣列形式PHPJSON陣列
- Go語言轉換JSON資料GoJSON
- Java與Json資料格式轉換JavaJSON
- js 將json字串轉換為json物件的方法解析JSON字串物件
- Android中實現JSON字串和JSON物件的轉換AndroidJSON字串物件
- JavaScript將物件轉換為JSON格式字串JavaScript物件JSON字串
- eval()將JSON格式字串轉換為物件JSON字串物件
- Json,String,Map之間的轉換JSON
- JavaScript將JSON格式字串轉換為物件JavaScriptJSON字串物件
- 【python】str與json型別轉換PythonJSON型別
- iOS 手動打造JSON Model轉換庫iOSJSON
- 一個簡單的Json轉換器JSON
- js 將json字串轉換為json格式物件程式碼例項JSON字串物件
- Python將xml格式轉換為json格式PythonXMLJSON
- Spring Boot之自定義JSON轉換器Spring BootJSON
- json字串和js物件之間相互轉換JSON字串物件
- javascript如何將字串轉換成json格式物件JavaScript字串JSON物件
- 將json格式物件轉換成陣列物件JSON物件陣列
- 簡單易用的JSON與List相互轉換JSON