您好,登錄后才能下訂單哦!
小編給大家分享一下Json.NET的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
首次遭遇Json格式,緣由項(xiàng)目中用到Json數(shù)據(jù),需要進(jìn)行解析,為此,將Json數(shù)據(jù)轉(zhuǎn)為了自己較為熟悉的DataTable格式,以此展示至DataGridView中,驗(yàn)證是否成功。
直接上代碼:
/// <summary> /// JSON數(shù)據(jù)轉(zhuǎn)換為datatable類型數(shù)據(jù) /// </summary> /// <param name="strjson">JSON數(shù)據(jù)字符串</param> /// <returns>轉(zhuǎn)換為DataTable類型的JSON數(shù)據(jù)</returns> private DataTable JSONToDataTable(string strjson) { DataTable dt=new DataTable(); DataColumn dc; DataRow dr; #region 添加列 //用于添加列 JsonReader jrcolumn = new JsonTextReader(new StringReader(strjson)); bool hascolumn = false; //當(dāng)前列名是否存在 while (jrcolumn.Read()) { //判斷當(dāng)前值是否是字段名 if (jrcolumn.TokenType.ToString() == "PropertyName") { //判斷當(dāng)前列名是否在datatable中已存在 foreach (DataColumn column in dt.Columns) { if (column.ColumnName == jrcolumn.Value.ToString()) { hascolumn = true; //存在相同名稱的列 break; } } //存在相同列,表示全部結(jié)束 if (hascolumn == true) { break; } //添加新列 dc = new DataColumn(); dc.ColumnName = jrcolumn.Value.ToString(); jrcolumn.Read(); dc.DataType = System.Type.GetType(jrcolumn.ValueType.ToString()); //列類型 dt.Columns.Add(dc); } } #endregion #region 添加數(shù)據(jù)記錄 //用于添加記錄 JsonReader jrrow = new JsonTextReader(new StringReader(strjson)); dr = dt.NewRow(); while (jrrow.Read()) { if (jrrow.TokenType.ToString() == "PropertyName") { string columnname = jrrow.Value.ToString(); jrrow.Read(); dr[columnname] = jrrow.Value.ToString(); if (columnname == dt.Columns[dt.Columns.Count - 1].ColumnName.ToString()) { dt.Rows.Add(dr); dr = dt.NewRow(); } } } #endregion return dt; }
以上是“Json.NET的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。