文档章节

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

vga
 vga
发布于 2015/02/17 09:19
字数 315
阅读 509
收藏 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
博文 359
码字总数 24366
作品 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

没有更多内容

加载失败,请刷新页面

加载更多

Java程序员的书籍清单

我自己一路来,看过的书籍,都是经典,我自己也在不断地回溯,在这里分享给大家(排名不分先后,这里仅仅是我自己购买这些书籍的时间顺序排列): 《高效程序员的45个习惯 敏捷开发修炼之道》...

ChinaHYF
32分钟前
1
0
DeepMind 开源图神经网络的代码

用于支持论文《Relational inductive biases, deep learning, and graph networks》。 github A graph network takes a graph as input and returns a graph as output. The input graph has......

shengjuntu
53分钟前
2
0
python2编码详解、一

以前使用python3没觉的什么,跟着公司使用python2后被编码问题折磨的痛不欲生,好好研究了一下编码问题,参考了很多博文,加入自己的理解,这里只是对编码的介绍,下一篇是python2中编码问题...

hc321
今天
2
0
基于OpenSSL的一些常用加密签名算法

目前包括:MD5、SHA512、DES、RSA加解密、RSA+MD5签名验证算法,在openssl基础上再进行封装,使用简单,头文件需要包含openssl库,可以使用vcpkg自动管理,省去繁琐的配置工程的过程。 该RSA...

LoSingSang
今天
1
0
spring Data JPA

什么是JPA? 全称Java Persistence API,可以通过注解或者XML描述【对象-关系表】之间的映射关系,并将实体对象持久化到数据库中。 为我们提供了: 1)ORM映射元数据:JPA支持XML和注解两种元...

狼王黄师傅
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部