C#实现集合转换成json格式数据的方法

作者:ajunfly 时间:2022-03-18 03:28:50 

本文实例讲述了C#实现集合转换成json格式数据的方法。分享给大家供大家参考,具体如下:


/// <summary>
/// dataTable转换成Json格式
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static string ToJson(DataTable dt)
{
 if (dt != null && dt.Rows.Count > 0)
 {
   StringBuilder jsonBuilder = new StringBuilder();
   jsonBuilder.Append("{\"");
   jsonBuilder.Append("data");
   jsonBuilder.Append("\":[");
   for (int i = 0; i < dt.Rows.Count; i++)
   {
     jsonBuilder.Append("{");
     for (int j = 0; j < dt.Columns.Count; j++)
     {
       jsonBuilder.Append("\"");
       jsonBuilder.Append(dt.Columns[j].ColumnName);
       jsonBuilder.Append("\":\"");
       jsonBuilder.Append(jsonStringFromat(dt.Rows[i][j].ToString()));
       jsonBuilder.Append("\",");
     }
     jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
     jsonBuilder.Append("},");
   }
   jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
   jsonBuilder.Append("]");
   jsonBuilder.Append("}");
   return jsonBuilder.ToString();
 }
 else
 {
   return "";
 }
}
/// <summary>
/// Enumerable转成JSON
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
public static string EnumerableToJson(IEnumerable list)
{
 StringBuilder json = new StringBuilder();
 int i = 0;
 if (list != null)
 {
   json.Append("{\"data\":[");
   foreach (var item in list)
   {
     json.Append("{");
     PropertyInfo[] pi = item.GetType().GetProperties();
     int j = 0;
     foreach (var p in pi)
     {
       if (j < pi.Length - 1)
       {
         json.Append("\"" + p.Name.ToString() + "\":\"" + jsonStringFromat(p.GetValue(item, null).ToString()) + "\",");
       }
       else
       {
         json.Append("\"" + p.Name.ToString() + "\":\"" + jsonStringFromat(p.GetValue(item, null).ToString()) + "\"");
       }
       j++;
     }
     i++;
     json.Append("},");
   }
   json.Remove(json.Length - 1, 1);
   json.Append("]}");
 }
 if (i != 0)
   return json.ToString();
 else
   return "";
}

PS:本站还提供了如下JSON相关工具,方便大家参考使用:

JSON在线转换成C#实体类工具:
http://tools.jb51.net/code/json2csharp

在线JSON代码检验、检验、美化、格式化工具:
http://tools.jb51.net/code/json

JSON在线格式化工具:
http://tools.jb51.net/code/jsonformat

在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson

json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.jb51.net/code/jsoncodeformat

C语言风格/HTML/CSS/json代码格式化美化工具:
http://tools.jb51.net/code/ccode_html_css_json

希望本文所述对大家C#程序设计有所帮助。

标签:C#,转换,json
0
投稿

猜你喜欢

  • Android string.xml中的替换方法

    2021-11-10 11:47:56
  • Java中通过Class类获取Class对象的方法详解

    2021-11-09 17:12:57
  • Java中判断对象是否为空的方法的详解

    2022-01-09 07:41:14
  • C#实现DVD借出归还管理系统

    2021-07-02 06:55:38
  • Spring的事务机制实例代码

    2021-09-11 07:46:23
  • Android在项目中接入腾讯TBS浏览器WebView的教程与注意的地方

    2021-12-18 01:58:28
  • 浅析Mybatis 在CS程序中的应用

    2023-06-24 08:44:15
  • Java生成PDF文件的实例代码

    2022-05-24 07:22:37
  • Android设置透明状态栏和透明导航栏

    2021-09-22 07:19:41
  • Java基础之从HelloWorld到面向对象

    2022-11-23 11:55:06
  • mybatis plus中如何编写sql语句

    2021-09-21 15:27:55
  • Android Room数据库多表查询的使用实例

    2022-11-07 02:49:49
  • c# 实现模糊PID控制算法

    2022-12-06 13:06:22
  • Spring集成Quartz的简单配置的方法

    2023-08-24 02:52:27
  • android 中 SQLiteOpenHelper的封装使用详解

    2022-11-09 12:36:57
  • 浅谈java安全编码指南之死锁dead lock

    2023-06-22 04:49:19
  • winform把Office转成PDF文件

    2023-03-29 01:09:32
  • Java基础教程之组合(composition)

    2022-08-02 19:12:32
  • Java中的clone()和Cloneable接口实例

    2022-09-27 15:31:05
  • SpringMVC五种类型参数传递及json传递参数

    2022-07-26 15:08:24
  • asp之家 软件编程 m.aspxhome.com