卜若的代码笔记-sqlserver与c#-第二章:读取的表单数据转json字符串然后转对象(序列化与反序列化)

1.先引入json的dll

2.观察c#中json字符串的格式

3.所以我们只需要讲从数据库里面的数据写成这种格式就能够转对象了

 

 代码如下:(你可以直接复制粘贴就行)

3.5(备注,非常重要)

你定义的类必须标明是可序列化的


        public static string getJsonStr(SqlDataReader dr)
        {

            StringBuilder builder = new StringBuilder();
        
            bool flag = false;
            try
            {
                while (dr.Read())
                {
                    flag = true;
                    builder.Append("{");
                    for (int i = 0; i < dr.FieldCount; i++)
                    {
                        Log.log(dr.GetValue(i).GetType() + "");

                        switch (dr.GetValue(i).GetType().ToString())
                        {
                            case "System.String":
                                Log.log("字符串");
                                builder.Append("\"");
                                builder.Append(dr.GetName(i));
                                builder.Append("\":\"");
                                builder.Append(dr.GetValue(i).ToString().Replace(@"\", @"\\").Replace("\"", "\\\""));
                                builder.Append("\",");
                                break;

                            case "System.Int32":
                                builder.Append("\"");
                                builder.Append(dr.GetName(i));
                                builder.Append("\":");

                                builder.Append(dr.GetValue(i).ToString().Replace("\"", ""));
                                builder.Append(',');
                                Log.log("int类型");
                                break;

                                

                            default:

                                break;
                        }
                       
                    }
                  
                }
                dr.Close();
                if (flag)
                {
                    builder.Remove(builder.Length - 1, 1);
                }
            }
            catch
            {
                dr.Close();
            }
           
            builder.Append("}");
            return builder.ToString();
        }

有了该字符串之后,直接转换成为对象(反序列化)

        public UserInfo json2Object(string jsonStr)
        {

            UserInfo userInfo = JsonConvert.DeserializeObject<UserInfo>(jsonStr);

            return userInfo;
        }

4.使用泛型

 public T json2Object<T>(string jsonStr)
        {

            T infoObject = JsonConvert.DeserializeObject<T>(jsonStr);

            return infoObject;
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值