JSON

JSON 对象互转

字号+ 作者:H5之家 来源:H5之家 2015-10-20 14:47 我要评论( )

本文是对JSON 对象互转的讲解,对学习C#编程技术有所帮助,与大家分享。

[摘要]本文是对JSON 对象互转的讲解,对学习C#编程技术有所帮助,与大家分享。

以前写过用反射,转换,后来觉得有很大漏洞,最近发现有人写过这个help类,所以保存下来

public class JSONHelper
{
/// <summary>
/// DataRow转JSON
/// </summary>
/// <param>DataRow</param>
/// <returns>JSON格式对象</returns>
public static object DataRowToJSON(DataRow row)
{
Dictionary<string, object> dataList = new Dictionary<string, object>();
foreach (DataColumn column in row.Table.Columns)
{
dataList.Add(column.ColumnName, row[column]);
}

return ObjectToJSON(dataList);
}

/// <summary>
/// DataRow转对象,泛型方法
/// </summary>
/// <typeparam>类型</typeparam>
/// <param>DataRow</param>
/// <returns>JSON格式对象</returns>
public static T DataRowToObject<T>(DataRow row)
{
return JSONToObject<T>(DataRowToJSON(row).ToString());
}

/// <summary>
/// DataRow转对象,泛型方法
/// </summary>
/// <typeparam>类型</typeparam>
/// <param>DataTable</param>
/// <returns>JSON格式对象</returns>
public static List<T> DataTableToList<T>(DataTable table)
{
return JSONToList<T>(DataTableToJSON(table).ToString());
}
/// <summary>
/// DataRow转对象,泛型方法
/// </summary>
/// <typeparam>类型</typeparam>
/// <param>JSON文本</param>
/// <returns>JSON格式对象</returns>
public static List<T> JSONToList<T>(string jsonText)
{
return JSONToObject<List<T>>(jsonText);
}

/// <summary>
/// 对象转JSON
/// </summary>
/// <param>对象</param>
/// <returns>JSON格式的字符串</returns>
public static object ObjectToJSON(object obj)
{
try
{
JsonSerializerSettings jset = new JsonSerializerSettings();
jset.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
jset.Converters.Add(new IsoDateTimeConverter { DateTimeFormat = "yyyy'http://www.daxueit.com/'MM'http://www.daxueit.com/'dd' 'HH':'mm':'ss" });
return JsonConvert.SerializeObject(obj, jset);
}
catch (Exception ex)
{
throw new Exception("JSONHelper.ObjectToJSON(): " + ex.Message);
}
}
/// <summary>
/// 数据表转JSON
/// </summary>
/// <param>数据表</param>
/// <returns>JSON字符串</returns>
public static object DataTableToJSON(DataTable dataTable)
{
return ObjectToJSON(dataTable);
}

/// <summary>
/// JSON文本转对象,泛型方法
/// </summary>
/// <typeparam>类型</typeparam>
/// <param>JSON文本</param>
/// <returns>指定类型的对象</returns>
public static T JSONToObject<T>(string jsonText)
{
try
{
return JsonConvert.DeserializeObject<T>(jsonText.Replace("undefined", "null"));
}
catch (Exception ex)
{
throw new Exception("JSONHelper.JSONToObject(): " + ex.Message);
}
}

/// <summary>
/// JSON文本转对象
/// </summary>
/// <param>JSON文本</param>
/// <param>类型</param>
/// <returns>指定类型的对象</returns>
public static object JSONToObject(string jsonText, Type type)
{
try
{
return JsonConvert.DeserializeObject(jsonText.Replace("undefined", "null"), type);
}
catch (Exception ex)
{
throw new Exception("JSONHelper.JSONToObject(): " + ex.Message);
}
}


/// <summary>
/// [{column1:1,column2:2,column3:3},{column1:1,column2:2,column3:3}]
/// </summary>
/// <param>Json字符串</param>
/// <returns>DataTable</returns>
public static DataTable JSONToDataTable(string strJson)
{
return JsonConvert.DeserializeObject(strJson, typeof(DataTable)) as DataTable;
}
}

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • php CI 实战教程:[5]用curl获取json并解析

    php CI 实战教程:[5]用curl获取json并解析

    2016-02-26 17:00

  •  JSON入门级学习总结-JSON数据结构

    JSON入门级学习总结-JSON数据结构

    2016-02-25 11:05

  • Android解析Json速度最快的库:json

    Android解析Json速度最快的库:json

    2016-02-13 18:00

  • JavaScript转换与解析JSON方法实例详解第1/2页

    JavaScript转换与解析JSON方法实例详解第1/2页

    2016-02-10 21:25

网友点评