using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;
using System.Data; /// <summary>
/// JSON帮助类
/// </summary>
publicclassJSONHelper
{
    /// <summary>
    /// 对象转JSON
    /// </summary>
    /// <param name="obj">对象</param>
    /// <returns>JSON格式的字符串</returns>
    publicstaticstringObjectToJSON(object obj)
    {
        JavaScriptSerializer jss =newJavaScriptSerializer();
        try
        {
            return jss.Serialize(obj);
        }
        catch(Exception ex)
        {             thrownewException("JSONHelper.ObjectToJSON(): "+ ex.Message);
        }
    }     /// <summary>
    /// 数据表转键值对集合 www.2cto.com  
    /// 把DataTable转成 List集合, 存每一行
    /// 集合中放的是键值对字典,存每一列
    /// </summary>
    /// <param name="dt">数据表</param>
    /// <returns>哈希表数组</returns>
    publicstaticList<Dictionary<string,object>>DataTableToList(DataTable dt)
    {
        List<Dictionary<string,object>> list
             =newList<Dictionary<string,object>>();         foreach(DataRow dr in dt.Rows)
        {
            Dictionary<string,object> dic =newDictionary<string,object>();
            foreach(DataColumn dc in dt.Columns)
            {
                dic.Add(dc.ColumnName, dr[dc.ColumnName]);
            }
            list.Add(dic);
        }
        return list;
    }     /// <summary>
    /// 数据集转键值对数组字典
    /// </summary>
    /// <param name="dataSet">数据集</param>
    /// <returns>键值对数组字典</returns>
    publicstaticDictionary<string,List<Dictionary<string,object>>>DataSetToDic(DataSet ds)
    {
        Dictionary<string,List<Dictionary<string,object>>> result =newDictionary<string,List<Dictionary<string,object>>>();         foreach(DataTable dt in ds.Tables)
            result.Add(dt.TableName,DataTableToList(dt));         return result;
    }     /// <summary>
    /// 数据表转JSON
    /// </summary>
    /// <param name="dataTable">数据表</param>
    /// <returns>JSON字符串</returns>
    publicstaticstringDataTableToJSON(DataTable dt)
    {
        returnObjectToJSON(DataTableToList(dt));
    }     /// <summary>
    /// JSON文本转对象,泛型方法
    /// </summary>
    /// <typeparam name="T">类型</typeparam>
    /// <param name="jsonText">JSON文本</param>
    /// <returns>指定类型的对象</returns>
    publicstatic T JSONToObject<T>(string jsonText)
    {
        JavaScriptSerializer jss =newJavaScriptSerializer();
        try
        {
            return jss.Deserialize<T>(jsonText);
        }
        catch(Exception ex)
        {
            thrownewException("JSONHelper.JSONToObject(): "+ ex.Message);
        }
    }     /// <summary>
    /// 将JSON文本转换为数据表数据
    /// </summary>
    /// <param name="jsonText">JSON文本</param>
    /// <returns>数据表字典</returns>
    publicstaticDictionary<string,List<Dictionary<string,object>>>TablesDataFromJSON(string jsonText)
    {
        returnJSONToObject<Dictionary<string,List<Dictionary<string,object>>>>(jsonText);
    }     /// <summary>
    /// 将JSON文本转换成数据行
    /// </summary>
    /// <param name="jsonText">JSON文本</param>
    /// <returns>数据行的字典</returns>
    publicstaticDictionary<string,object>DataRowFromJSON(string jsonText)
    {
        returnJSONToObject<Dictionary<string,object>>(jsonText);
    }
}

C# jsonhelper的更多相关文章

  1. JSON扩展类——JsonHelper

    1.引用Newtonsoft.Json库(JSON.NET). 2.复制粘贴JsonHelper吧. 源代码: using System; using System.Collections.Gener ...

  2. JsonHelper MergeJsonTemplate

    namespace Test { using Newtonsoft.Json; using System; using System.Collections.Generic; using System ...

  3. JsonHelper developed by using Newtonsoft.Json.NET, Deserialize to <T> object , XmlToJson/JsonToXml, QuoteName by using JToken Path.

    namespace TestConsoleApplication { using System; using System.Diagnostics; using System.Threading; u ...

  4. 【C#公共帮助类】JsonHelper 操作帮助类, 以后再也不用满地找Json了,拿来直接用

     四个主要操作类:JsonConverter .JsonHelper .JsonSplit .AjaxResult 一.JsonConverter: 自定义查询对象转换动态类.object动态类转换j ...

  5. C#序列化及反序列化Json对象通用类JsonHelper

    当今的程序界Json大行其道.因为Json对象具有简短高效等优势,广受广大C#码农喜爱.这里发一个序列化及反序列化Json对象通用类库,希望对大家有用. public class JsonHelper ...

  6. asp.net的JSONHelper 类

    调用方法: ){    jsons = json.ToString();}else{    jsons = @"{success:false}";}return jsons; JS ...

  7. JsonHelper

    .net下的json序列化在以前没有Newtonsoft.Json崭露头角之前采用System.Web.Script.Serialization命名空间下的JavaScriptSerializer对象 ...

  8. JsonHelper类(序列化和反序列化辅助类)

       1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: using System.Web; ...

  9. CollatingOfData 之 JsonHelper

    1 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System. ...

随机推荐

  1. SQLServer:FUNCTION/CURSOR/PROCEDURE/TRIGGER

    一.FUNCTION:在sqlserver2008中有3中自定义函数:标量函数/内联表值函数/多语句表值函数,首先总结下他们语法的异同点:同点:1.创建定义是一样的:                  ...

  2. SQL Server常用命令

    1.DECLARE DECLARE命令用于声明一个或多个局部变量.游标变量或表变量. 注:如果定义的变量是字符型,应该指定data_type表达式中其最大长度,否则系统认为其长度为1. declare ...

  3. catalan number

    http://blog.csdn.net/yutianzuijin/article/details/13161721

  4. ACM/ICPC 之 四道MST-Kruskal解法-练习题(POJ1251-POJ1287-POJ2031-POJ2421)

    由于题目简单,部分题意写在代码中(简单题就应该多练英文...),且较少给注释,需要注意的地方会写在代码中,虽然四个题意各有千秋,但万变不离其宗,细细思考一番会发现四道题都属于很直接的最小生成树问题,由 ...

  5. js中apply方法的使用

    js中apply方法的使用   1.对象的继承,一般的做法是复制:Object.extend prototype.js的实现方式是: Object.extend = function(destinat ...

  6. 【leetcode】Text Justification(hard) ☆

    Given an array of words and a length L, format the text such that each line has exactly L characters ...

  7. ajax,下拉框级联

    js代码: $(document).ready(function() { $("#type1").change(function(){ var type1Code=$(" ...

  8. 关闭Eclipse的控制台console自动跳出

    一.背景 在eclipse中进行开发,尤其是在后台有项目运行的时候,当有log或者错误需要打印到console中时,控制台就会被自动弹出,恰好这时候你又在编写代码,就会感觉瞬间想杀人,下面我们就来分享 ...

  9. iOS中常见的一些宏

    原文链接 1.处理NSLog事件(开发者模式打印,发布者模式不打印) #ifdef DEBUG #define NSLog(FORMAT, ...) fprintf(stderr,"%s:% ...

  10. eclipse上安装abator插件

    下面是我看了网上的有一点需要强调:网址 http://ibatis.apache.org/tools/abator然后全选,然后是==>重启就好了 eclipse上安装abator插件参考:ht ...