NameValueCollection 转换为 Json 的时候,只把它的Keys 数组 转换为Json ,忽略了 Value , 方法就是把 NameValueCollection 转换为 字典,再转为Json
自定义Json转换类:
public static class JsonHelper
{
public static string ToJson(this T source)
{
if (source == null) return string.Empty;
var nv = source as NameValueCollection;
if (nv != null)
{
JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
//执行序列化
return jsonSerializer.Serialize(nv.ToDictionary());
}
else
{
JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
//执行序列化
return jsonSerializer.Serialize(source);
}
}
///
///
///
///
///
///
public static T FromJson(this string str)
where T : new()
{
if (str.HasValue() == false)
{
return new T();
}
else
{
string ss = str.Trim().Replace(Environment.NewLine, "");
if (ss.StartsWith("[") == false && ss.StartsWith("{") == false)
{
str = "{" + str + "}";
}
}
if (str[0] == '[')
{
JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
return jsonSerializer.Deserialize(str);
}
Type type = typeof(T);
var nvType = typeof(NameValueCollection);
if (type == nvType ||
type.IsSubclassOf(nvType))
{
JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
var dict = jsonSerializer.Deserialize>(str);
NameValueCollection nv = new NameValueCollection();
if (dict == null) return new T();
foreach (var item in dict)
{
nv[item.Key] = item.Value;
}
return (T)(object)nv;
}
else
{
JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
return jsonSerializer.Deserialize(str);
}
}
public static T[] Json2Array(this string str)
{
if (str.HasValue() == false)
{
return new T[0];
}
else
{
string ss = str.Trim().Replace(Environment.NewLine, "");
if (ss.StartsWith("[") == false && ss.StartsWith("{") == false)
{
str = "{" + str + "}";
}
}
JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
return jsonSerializer.Deserialize(str);
}
}
https://www.cnblogs.com/newsea/category/71822.html