文档章节

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

vga
 vga
发布于 2015/02/17 09:19
字数 315
阅读 514
收藏 14

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;
        }
    }
 }

本文转载自:http://www.linuxidc.com/Linux/2014-09/106624.htm

共有 人打赏支持
vga

vga

粉丝 21
博文 362
码字总数 24609
作品 0
佳木斯
私信 提问
Json常用组件

Json2.js: 开发者:json官网:http://www.json.org/。 适用环境:用于在不支持JSON对象的浏览器(通常是国内使用IE内核的第三方浏览器)下使用。json2.js提供了json的序列化和反序列化方法,...

龙鸟
2016/12/06
20
0
JS字符串转对象

字符串转对象(strJSON代表json字符串) var obj = eval(strJSON); var obj = strJSON.parseJSON(); var obj = JSON.parse(strJSON); json对象转字符串(obj代表json对象) var str = obj.toJSO......

鸡仔哥
2016/09/15
15
0
Js中 json object 和 string 互相转换

字符串转对象(strJSON代表json字符串) var obj = eval(strJSON); var obj = strJSON.parseJSON(); var obj = JSON.parse(strJSON); json对象转字符串(obj代表json对象) var str = obj.toJSO......

hn_old_man
2016/04/21
68
0
JS~JS里的数据类型

JS里的数据类型,它虽然是个弱类型的语言,但它也有自己的规定的,它不会向其它语言那么,使用int来声明一个整形变量,而是使用 var,如果你是一个C#的开发者,你就会知道,原来C#现在也在和...

mcy247
2017/12/06
0
0
angryid/json4bean

#json4bean 技术讨论 QQ 群 592835013(捧个人场) 超轻量级Json4Bean工具包(小于30k),源码不依赖任何第三方jar包,可扩展 特点: 超轻量级Json4Bean工具包(小于30k),源码不依赖任何第三方...

angryid
2016/08/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Shell脚本——cat/EOF输出多行

在某些场合,可能我们需要在脚本中生成一个临时文件,然后把该文件作为最终文件放入目录中。(可参考ntop.spec文件)这样有几个好处,其中之一就是临时文件不是唯一的,可以通过变量赋值,也...

吴伟祥
7分钟前
1
0
线程安全性的文档化(70)

当一个类的实例或者静态方法被并发使用的时候,这个类的行为如何, 是该类与客户端程序的行为约束 如果文档中没有相关描述,那么可能导致未同步或过度同步的情况 并不是说文档中出现Synchro...

Java搬砖工程师
8分钟前
0
0
ubuntu16.04下安装postgresql 10.3

在网上找了不少博客,结果还是一大坨的坑要我踩,踩完之后总结一下下吧!(适合初学者) 环境及资源 Linux版本:ubuntu16.04 PostgresSQL版本:postgresql-10.3 PostgreSQL官网下载地址:htt...

杨鹏飞乀
10分钟前
0
0
.NET Core 2.1 跨域问题的解决

https://blog.csdn.net/qq_42220663/article/details/82381386

lsy999
20分钟前
0
0
LinkedList基本用法

LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用. LinkedList的构造函数如下 1. public LinkedList(): ——生成空的链表 2. public LinkedList(Collection col)...

whoisliang
22分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部