星空网 > 软件开发 > ASP.net

JSON 对象互转

 

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

public class JSONHelper
{
/// <summary>
/// DataRow转JSON
/// </summary>
/// <param name="row">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 name="T">类型</typeparam>
/// <param name="row">DataRow</param>
/// <returns>JSON格式对象</returns>
public static T DataRowToObject<T>(DataRow row)
{
return JSONToObject<T>(DataRowToJSON(row).ToString());
}

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

/// <summary>
/// 对象转JSON
/// </summary>
/// <param name="obj">对象</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'/'MM'/'dd' 'HH':'mm':'ss" });
return JsonConvert.SerializeObject(obj, jset);
}
catch (Exception ex)
{
throw new Exception("JSONHelper.ObjectToJSON(): " + ex.Message);
}
}
/// <summary>
/// 数据表转JSON
/// </summary>
/// <param name="dataTable">数据表</param>
/// <returns>JSON字符串</returns>
public static object DataTableToJSON(DataTable dataTable)
{
return ObjectToJSON(dataTable);
}

/// <summary>
/// JSON文本转对象,泛型方法
/// </summary>
/// <typeparam name="T">类型</typeparam>
/// <param name="jsonText">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 name="jsonText">JSON文本</param>
/// <param name="type">类型</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 name="strJson">Json字符串</param>
/// <returns>DataTable</returns>
public static DataTable JSONToDataTable(string strJson)
{
return JsonConvert.DeserializeObject(strJson, typeof(DataTable)) as DataTable;
}
}




原标题:JSON 对象互转

关键词:JS

JS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

亚马逊年度股东大会:严禁上架这类Listing!:https://www.ikjzd.com/articles/96210
中美贸易战生意难做,来印尼抢占跨境电商2.65亿人口红利!:https://www.ikjzd.com/articles/96211
顶风作浪!听说你还在用这个方法翻新listing?:https://www.ikjzd.com/articles/96212
Prime Day又要来了!2019 Prime Day要怎么玩?:https://www.ikjzd.com/articles/96213
亚马逊大规模封号的根本原因,这几件事千万不要做!:https://www.ikjzd.com/articles/96214
亚马逊运营是做什么的?一个老运营的运营清单:https://www.ikjzd.com/articles/96215
Lazada与菲律宾银行合作,引入BNPL支付服务:https://www.goluckyvip.com/news/218218.html
企业家的10个创新科技商业理念:https://www.kjdsnews.com/a/1842119.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流