1. namespace Net.String.ConsoleApplication
  2. {
  3. using System;
  4. using System.Data;
  5. using System.Collections;
  6. using System.ComponentModel;
  7. using System.Collections.Generic;
  8. using System.Web.Script.Serialization;
  9.  
  10. public class JsonHelper
  11. {
  12. /// <summary>
  13. /// 把json字符串转成对象
  14. /// </summary>
  15. /// <typeparam name="T">对象</typeparam>
  16. /// <param name="data">json字符串</param>
  17. public static T Deserialize<T>(string data)
  18. {
  19. System.Web.Script.Serialization.JavaScriptSerializer json = new System.Web.Script.Serialization.JavaScriptSerializer();
  20. return json.Deserialize<T>(data);
  21. }
  22.  
  23. /// <summary>
  24. /// 把对象转成json字符串
  25. /// </summary>
  26. /// <param name="o">对象</param>
  27. /// <returns>json字符串</returns>
  28. public static string Serialize(object o)
  29. {
  30. System.Text.StringBuilder sb = new System.Text.StringBuilder();
  31. System.Web.Script.Serialization.JavaScriptSerializer json = new System.Web.Script.Serialization.JavaScriptSerializer();
  32. json.Serialize(o, sb);
  33. return sb.ToString();
  34. }
  35.  
  36. /// <summary>
  37. /// 把DataTable对象转成json字符串
  38. /// </summary>
  39. public string ToJson(DataTable dt)
  40. {
  41. JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
  42. ArrayList arrayList = new ArrayList();
  43. foreach (DataRow dataRow in dt.Rows)
  44. {
  45. Dictionary<string, object> dictionary = new Dictionary<string, object>();
  46. foreach (DataColumn dataColumn in dt.Columns)
  47. {
  48. dictionary.Add(dataColumn.ColumnName, dataRow[dataColumn.ColumnName]);
  49. }
  50. arrayList.Add(dictionary);
  51. }
  52. return javaScriptSerializer.Serialize(arrayList);
  53. }
  54. }
  55.  
  56. public static class EnumerableExtension
  57. {
  58. /// <summary>
  59. /// 集合添加一个对象
  60. /// </summary>
  61. public static IEnumerable<T> Add<T>(this IEnumerable<T> e, T value)
  62. {
  63. foreach (var cur in e)
  64. { yield return cur; }
  65. yield return value;
  66. }
  67.  
  68. /// <summary>
  69. /// 把集合转成DataTable
  70. /// </summary>
  71. public static DataTable ConvertToDataTable<T>(this IEnumerable<T> enumerable)
  72. {
  73. var dataTable = new DataTable();
  74. foreach (PropertyDescriptor pd in TypeDescriptor.GetProperties(typeof(T)))
  75. {
  76. dataTable.Columns.Add(pd.Name, pd.PropertyType);
  77. }
  78. foreach (T item in enumerable)
  79. {
  80. var Row = dataTable.NewRow();
  81.  
  82. foreach (PropertyDescriptor dp in TypeDescriptor.GetProperties(typeof(T)))
  83. {
  84. Row[dp.Name] = dp.GetValue(item);
  85. }
  86. dataTable.Rows.Add(Row);
  87. }
  88. return dataTable;
  89. }
  90. }
  91. }

  

C#对象转JSON字符串和JSON字符串转对象的更多相关文章

  1. Json字符串和Json对象的简单总结

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON成为理想的数据交换语言. 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率). ...

  2. JavaScript操作JSON的方法总结,JSON字符串转换为JSON对象

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...

  3. 【荐】使用eval()、new Function()将JSON字符串转换为JSON对象

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 第一种解析方式:使用eval函数来解析,并且使用j ...

  4. JSON字符串与JSON对象的区别

    Q:什么是"JSON字符串",什么是"JSON对象",两者的区别? a.JSON对象是直接可以使用JQuery操作的格式,如C#中可以用对象(类名)点出属性(方 ...

  5. js 将json字符串转换为json对象的方法解析

    推荐: var obj = eval('(' + str + ')'); var last=JSON.stringify(obj); //将JSON对象转化为string字符 例如: JSON字符串: ...

  6. javaScript 将json字符串转换为json对象的方法解析

    JSON字符串: var str1 = '{ "name": "cxh", "sex": "man" }'; JSON对 ...

  7. 字符串与json对象之间转换

    var data='{"1":"","2":"two"}' 原生 eval  eval('('++')') JSON.p ...

  8. JSON字符串与JSON对象

    JSON对象是直接可以使用JQuery操作的格式,和js中的对象一样,可以用对象(类名)点出属性(方法). JSON字符串仅仅只是一个字符串,一个整体,不截取的话没办法取出其中存储的数据,不能直接使用 ...

  9. js 中json字符串转化json对象

    JSON字符串:var str = '{ "name": "cxh", "sex": "man" }'; JSON对象: ...

  10. Java JSON、XML文件/字符串与Bean对象互转解析

    前言      在做web或者其他项目中,JSON与XML格式的数据是大家经常会碰见的2种.在与各种平台做数据对接的时候,JSON与XML格式也是基本的数据传递格式,本文主要简单的介绍JSON/XML ...

随机推荐

  1. 正确率、召回率和 F 值

    原文:http://peghoty.blog.163.com/blog/static/49346409201302595935709/ 正确率.召回率和 F 值是在鱼龙混杂的环境中,选出目标的重要评价 ...

  2. discuz常用变量

    帖子URL: {url}帖子标题: {title}附件图片: {pic}帖子内容: {summary}楼主: {author}楼主UID: {authorid}楼主头像: {avatar}楼主头像(中 ...

  3. 关于删除linux多余内核

    step 1: 查找当前正在使用的内核文件的版本号 #uname -r step 2: 列出所有的内核文件,使用rpm 或者 dpkg(基于linux系统) 命令  #rpm -q kernel 或者 ...

  4. Eclipse+Axis使用WSDL文件生成Web Service服务端/客户端

    JDK版本:1.5.0_22 Eclipse版本:Helios Service Release 2(3.6.2) WSDL文件的创建过程见http://blog.csdn.net/a19881029/ ...

  5. 今天学习css一些动画效果

    <!doctype html><html lang="en"> <head> <meta charset="UTF-8" ...

  6. 关于IE6的一些常见的CSS BUG处理

    CSS BUG:样式在各浏览器中解析不一致的情况,或者说CSS样式在浏览器中不能正确显示的问题称为CSS BUG: CSS Hack:css hack是指一种兼容css 在不同浏览器中正确显示的技巧方 ...

  7. JavaScript 三种绑定事件方式之间的区别

    JavaScript三种绑定事件的方式: 1. <div id="btn" onclick="clickone()"></div> // ...

  8. 不可小觑的“alt”

    定义和用法 alt 属性是一个必需的属性,它规定在图像无法显示时的替代文本. 假设由于下列原因用户无法查看图像,alt 属性可以为图像提供替代的信息: 网速太慢 src 属性中的错误 浏览器禁用图像 ...

  9. Java Concurrency - ReadWriteLock & ReentrantReadWriteLock

    锁所提供的最重要的改进之一就是 ReadWriteLock 接口和它的实现类 ReentrantReadWriteLock.这个类提供两把锁,一把用于读操作和一把用于写操作.同一时间可以有多个线程执行 ...

  10. HDOJ2010水仙花数

    水仙花数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...