添加引用:
转换类:
{
public JsonObject()
{
}
/// <summary>
/// 用Json字符串初始化Json对象
/// </summary>
/// <param name="json">要转换为Json对象的字符串</param>
public JsonObject(string json)
{
var js = new JavaScriptSerializer();
Value = js.DeserializeObject(json);
}
/// <summary>
/// 解析JSON字串
/// </summary>
public static JsonObject Parse(string json)
{
var js = new JavaScriptSerializer();
object obj = js.DeserializeObject(json);
return new JsonObject()
{
Value = obj
};
}
/// <summary>
/// 取对象的属性
/// </summary>
public JsonObject this[string key]
{
get
{
var dict = this.Value as Dictionary<string, object>;
if (dict != null && dict.ContainsKey(key))
{
return new JsonObject { Value = dict[key] };
}
return new JsonObject();
}
}
/// <summary>
/// 取数组
/// </summary>
public JsonObject this[int index]
{
get
{
var array = this.Value as object[];
if (array != null && array.Length > index)
{
return new JsonObject { Value = array[index] };
}
return new JsonObject();
}
}
/// <summary>
/// 将值以希望类型取出
/// </summary>
public T GetValue<T>()
{
return (T)Convert.ChangeType(Value, typeof(T));
}
/// <summary>
/// 取出字串类型的值
/// </summary>
public string Text()
{
return Convert.ToString(Value);
}
/// <summary>
/// 取出数值
/// </summary>
public double Number()
{
return Convert.ToDouble(Value);
}
/// <summary>
/// 取出整型
/// </summary>
public int Integer()
{
return Convert.ToInt32(Value);
}
/// <summary>
/// 取出布尔型
/// </summary>
public bool Boolean()
{
return Convert.ToBoolean(Value);
}
/// <summary>
/// 值
/// </summary>
public object Value
{
get;
private set;
}
/// <summary>
/// 如果是数组返回数组长度
/// </summary>
public int Length
{
get
{
var array = this.Value as object[];
if (array != null)
{
return array.Length;
}
return 0;
}
}
/// <summary>
/// DataTable 对象 转换为Json 字符串
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public string ToJson(DataTable dt)
{
JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值
ArrayList arrayList = new ArrayList();
foreach (DataRow dataRow in dt.Rows)
{
Dictionary<string, object> dictionary = new Dictionary<string, object>(); //实例化一个参数集合
foreach (DataColumn dataColumn in dt.Columns)
{
dictionary.Add(dataColumn.ColumnName, dataRow[dataColumn.ColumnName]);
}
arrayList.Add(dictionary); //ArrayList集合中添加键值
}
return javaScriptSerializer.Serialize(arrayList); //返回一个json字符串
}
public string ToJson(DataSet dataSet)
{
string jsonString = "{";
foreach (DataTable table in dataSet.Tables)
{
jsonString += "\"" + table.TableName + "\":" + ToJson(table) + ",";
}
jsonString = jsonString.TrimEnd(',');
return jsonString + "}";
}
}