zoukankan      html  css  js  c++  java
  • C#实现集合转换成json格式数据

    本文实例讲述了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 "";
    }
  • 相关阅读:
    求全排列,调用C++函数
    ZOJ 3508 (the war)
    HDU 1285
    SDUT--枚举(删数问题)
    SDUT--进制转换
    位运算
    [NOI2015]软件包管理器
    列队[noip2017]
    [APIO2007]动物园
    [NOI2001]炮兵阵地
  • 原文地址:https://www.cnblogs.com/moxiaomai/p/9012945.html
Copyright © 2011-2022 走看看