温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Json.NET的示例分析

发布时间:2021-11-24 10:53:37 来源:亿速云 阅读:187 作者:小新 栏目:编程语言

小编给大家分享一下Json.NET的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

首次遭遇Json格式,缘由项目中用到Json数据,需要进行解析,为此,将Json数据转为了自己较为熟悉的DataTable格式,以此展示至DataGridView中,验证是否成功。

直接上代码:

/// <summary>
/// JSON数据转换为datatable类型数据
/// </summary>
/// <param name="strjson">JSON数据字符串</param>
/// <returns>转换为DataTable类型的JSON数据</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; //当前列名是否存在
    while (jrcolumn.Read())
    {
        //判断当前值是否是字段名
        if (jrcolumn.TokenType.ToString() == "PropertyName")
        {
            //判断当前列名是否在datatable中已存在
            foreach (DataColumn column in dt.Columns)
            {
                if (column.ColumnName == jrcolumn.Value.ToString())
                {
                    hascolumn = true;    //存在相同名称的列
                    break;
                }
            }

            //存在相同列,表示全部结束
            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 添加数据记录
    //用于添加记录
    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的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI