将字典类型(Dictionary)类型数据拼接为key1=value1&key2=value2的两种方法

一、序列化为Json字符串

当需要将对象转为{ "street": "科技园路.", "city": "江苏苏州", "country": "中国"}这种格式时使用序列化(不引入外部dll的方式)

        public static String SerializeObject(Object o)
        {
            System.Web.Script.Serialization.JavaScriptSerializer json = new System.Web.Script.Serialization.JavaScriptSerializer();
            String jsonString = json.Serialize(o);
            return jsonString;
        }       

在使用上述方法之前先得添加引用“System.Web.Extensions”,然后还得在类前面增加using System.Web;
这里写图片描述

反序列化为指定对象

JavaScriptSerializer js = new JavaScriptSerializer();
Student model = js.Deserialize< Student>(jsonStr);// //反序列化

二、将字符串key、value进行&连接

两个方法大同小异
方法一:

private string dataToString(Dictionary<string,string> data)
        {
            StringBuilder sub = new StringBuilder();
            foreach (string s in data.Keys)
            {
                if (sub.Length > 0)
                {
                    sub.Append("&");
                }
                sub.Append(System.Web.HttpUtility.UrlEncode(s) + "=" + System.Web.HttpUtility.UrlEncode(data[s].ToString()));
            }
            return sub.ToString();
      }

方法2:

private string dataToString(Dictionary<string,string> data)
{
   StringBuilder buffer = new StringBuilder();  
                int i = 0;
                foreach (string key in data.Keys)  
                {  
                    if (i > 0)  
                    {
                        buffer.AppendFormat("&{0}={1}", key, data[key]);  
                    }  
                    else  
                    {
                        buffer.AppendFormat("{0}={1}", key, data[key]);  
                    }  
                    i++;  
                }
                return buffer.ToString();
}

运行结果
这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_39885282/article/details/79501916
今日推荐