C# 将json格式的字符串转为c#对象

本文详细介绍如何使用C#和Newtonsoft.Json库将JSON格式的字符串转换为C#对象,包括验证JSON格式、安装库、创建类及转换方法,最后演示如何将转换后的对象用于填充数据集。

c# 将json格式的字符串转为c#对象

1、验证字符串是否为标准Json格式

打开度娘,搜json格式验证,就有网站可以验证json格式,如“http://www.bejson.com/”
将字符串复制进去验证。
校验json格式

2、安装Newtonsoft.Json

打开VS的工具-NuGet包管理-管理解决方案的NuGet程序包,搜索Newtonsoft.Json,安装
安装Newtonsoft.Json

3、在项目中插入类项目

添加类
添加引用using Newtonsoft.Json;
点击VS-编辑-选择性粘贴-将JSON粘贴为类
(有些VS里面没有选择性粘贴是因为安装VS时没有安装ASP.NET和Web开发,重新安装上就行)

安装ASP.NET和Web开发

粘贴为类后VS根据JSON字符串自动获得如下代码(不同string转出来的格式不一样,具体参考自己的json字符串)

    public class jsontoc
    {
        public class dataobject
        {
            public int status { get; set; }
            public string message { get; set; }
            public int count { get; set; }
            public int total { get; set; }
            public Meta[] meta { get; set; }
            public object[][] data { get; set; }
        }

        public class Meta
        {
            public string field_name { get; set; }
            public string data_type { get; set; }
            public int size { get; set; }
        }


        public class loginobject
        {
            public int status { get; set; }
            public string message { get; set; }
            public string token { get; set; }
            public DateTime expire_time { get; set; }
            public string app_secret { get; set; }
            public int db_access_mode { get; set; }
            public bool check_sign { get; set; }
        }

这样就获得了JSON转换的类。就差个引用了

4、引用

1、写方法

        public jsontoc.dataobject Getdataobject(string JsonString)
        {
            jsontoc.dataobject dataobject;
            try
            {
                dataobject = (jsontoc.dataobject)Newtonsoft.Json.JsonConvert.DeserializeObject(JsonString, typeof(jsontoc.dataobject));
                return dataobject;
            }
            catch
            { return null; }
        }

2、调用方法

            jsontoc.dataobject js = Getdataobject(str);

获得对象后,随你使用了。比如要转成dataset

            DataSet ds = new DataSet();
            //根据json的数据自行判断
            if (js.status==0 && js.meta != null && js.data != null)
            {
                //添加表
                ds.Tables.Add("data");
                //添加列
                for (int i = 0; i < js.meta.Length; i++)
                { ds.Tables[0].Columns.Add(js.meta[i].field_name); }
                //添加数据
                for (int i = 0; i < js.data.Length; i++)
                { ds.Tables[0].Rows.Add(js.data[i]); }
                //填充dataGridView1
                dataGridView1.DataSource = ds.Tables[0];
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值