zoukankan      html  css  js  c++  java
  • C#对象转JSON字符串和JSON字符串转对象

    C#对象转JSON字符串和JSON字符串转对象

    /* 创建者:菜刀居士的博客
    
    * 创建日期: 2014年09月03号
    
    * 功能: Json操作
    
    *
    
    */
    
    namespace Net.String.ConsoleApplication
    {
    using System;
    using System.Data;
    using System.Collections;
    using System.ComponentModel;
    using System.Collections.Generic;
    using System.Web.Script.Serialization;
    public class JsonHelper
    {
    /// <summary>
    /// 把json字符串转成对象
    /// </summary>
    /// <typeparam name="T">对象</typeparam>
    /// <param name="data">json字符串</param>
    public static T Deserialize<T>(string data)
    {
    System.Web.Script.Serialization.JavaScriptSerializer json = new System.Web.Script.Serialization.JavaScriptSerializer();
    return json.Deserialize<T>(data);
    }
    
    /// <summary>
    
    /// 把对象转成json字符串
    
    /// </summary>
    
    /// <param name="o">对象</param>
    
    /// <returns>json字符串</returns>
    
    public static string Serialize(object o)
    
    {
    
    System.Text.StringBuilder sb = new System.Text.StringBuilder();
    
    System.Web.Script.Serialization.JavaScriptSerializer json = new System.Web.Script.Serialization.JavaScriptSerializer();
    
    json.Serialize(o, sb);
    
    return sb.ToString();
    
    }
    
    /// <summary>
    
    /// 把DataTable对象转成json字符串
    
    /// </summary>
    
    public string ToJson(DataTable dt)
    
    {
    
    JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
    
    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);
    
    }
    
    return javaScriptSerializer.Serialize(arrayList);
    
    }
    
    }
    
    public static class EnumerableExtension
    
    {
    
    /// <summary>
    
    /// 集合添加一个对象
    
    /// </summary>
    
    public static IEnumerable<T> Add<T>(this IEnumerable<T> e, T value)
    
    {
    
    foreach (var cur in e)
    
    { yield return cur; }
    
    yield return value;
    
    }
    
    /// <summary>
    
    /// 把集合转成DataTable
    
    /// </summary>
    
    public static DataTable ConvertToDataTable<T>(this IEnumerable<T> enumerable)
    
    {
    
    var dataTable = new DataTable();
    
    foreach (PropertyDescriptor pd in TypeDescriptor.GetProperties(typeof(T)))
    
    {
    
    dataTable.Columns.Add(pd.Name, pd.PropertyType);
    
    }
    
    foreach (T item in enumerable)
    
    {
    
    var Row = dataTable.NewRow();
    
    foreach (PropertyDescriptor dp in TypeDescriptor.GetProperties(typeof(T)))
    
    {
    
    Row[dp.Name] = dp.GetValue(item);
    
    }
    
    dataTable.Rows.Add(Row);
    
    }
    
    return dataTable;
    
    }
    
    }
    
    }
  • 相关阅读:
    互联网搜索引擎——文本预处理
    nltk的pos_tag
    nltk.stem 词干提取(stemming)
    python3的encode和decode涉及的str和bytes转换
    power rails 'GND' and 'VCC/VDD' are interconnected in net VCC
    impot不能导入自己写的python文件【爆红】
    No module named 'tensorflow.contrib'
    解决spark-submit的There is insufficient memory for the Java Runtime Environment to continue.(老顽固问题) failed; error='Cannot allocate memory' (errno=12)
    spark的standalone模式下:查看任务结束后的历史记录
    只是为了保存一些有用链接而已
  • 原文地址:https://www.cnblogs.com/ShoneH/p/5151173.html
Copyright © 2011-2022 走看看