首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

如何将数据库中读取出来的数据变成josn格式的数据

2012-12-17 
怎么将数据库中读取出来的数据变成josn格式的数据?RT,请问有哪些方法[最优解释]1:自己拼接成json格式2:Jav

怎么将数据库中读取出来的数据变成josn格式的数据?
RT,请问有哪些方法
[最优解释]
1:自己拼接成json格式
2:JavaScriptSerializer 
3:DataContractJsonSerializer
2和3都要3.5才支持!
[其他解释]
可以根据自己的数据源写一个转json的方法(自己拼接json格式)
[其他解释]
http://www.cnblogs.com/Ferry/archive/2010/08/03/1791439.html

看到底
[其他解释]
只能用拼接的方法吗?还有没有别的方法了?
[其他解释]
数据源以DataSet为例


private string ConvertToJson(DataSet ds)
    {
        StringBuilder retVal = new StringBuilder();
        int TableCount = 0, RowCount = 0, ColumnCount = 0;
        retVal.Append("{");
        foreach (DataTable dt in ds.Tables)
        {
            TableCount++;
            retVal.AppendFormat("{0}:[", dt.TableName);
            foreach (DataRow row in dt.Rows)
            {
                RowCount++; retVal.Append("{");
                foreach (DataColumn column in dt.Columns)
                {
                    ColumnCount++; retVal.AppendFormat("{0}:"{1}"{2}", column.ColumnName, row[column].ToString().Trim().Replace("'", "\\'").Replace("\\r", "<br/>").Replace("\\n", "<br/>").Replace(System.Environment.NewLine, "<br/>"), ColumnCount == dt.Columns.Count ? "" : ",");
                } ColumnCount = 0; retVal.Append("}"); retVal.AppendFormat("{0}", RowCount == dt.Rows.Count ? "" : ",");
            }
            RowCount = 0;
            retVal.Append("]");
            retVal.AppendFormat(TableCount == ds.Tables.Count ? "" : ",");
        }
        retVal.Append("}");
        return retVal.ToString();
    }



[其他解释]
。net中不是有一个josn序列化的类吗?这是干什么用的?
[其他解释]
很多。。。搜下
[其他解释]
自己接接,或者使用json序列化类


[其他解释]
2.0没有直接功能
4.0肯定有
[其他解释]
楼主百度一下 Newtonsoft.Json.dll
[其他解释]
这个简单,转的方式很多,google一个简洁合适自己的。
[其他解释]
public static List<T> JSONStringToList<T>(this string JsonStr)
  {   
  JavaScriptSerializer Serializer = new JavaScriptSerializer();
  List<T> objs = Serializer.Deserialize<List<T>>(JsonStr);
  return objs;
  }   

public static T Deserialize<T>(string json)
  {
  T obj = Activator.CreateInstance<T>();
  using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
  {
  System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType());
  return (T)serializer.ReadObject(ms);
  }
  }
注意Serializable, 
[其他解释]

# // 将datatable转换为json  
# /// </summary>  
# /// <param name="dtb"></param>  
# /// <returns></returns>  
# private string Dtb2Json(DataTable dtb) {  
#     JavaScriptSerializer jss = new JavaScriptSerializer();  
#     System.Collections.ArrayList dic = new System.Collections.ArrayList();  
#     foreach (DataRow dr in dtb.Rows)  
#     {  
#         System.Collections.Generic.Dictionary<string, object> drow = new System.Collections.Generic.Dictionary<string, object>();  
#         foreach (DataColumn dc in dtb.Columns)  
#         {  
#             drow.Add(dc.ColumnName, dr[dc.ColumnName]);  
#         }  
#         dic.Add(drow);  
#           
#     }  
#     //序列化  
#     return jss.Serialize(dic);  
#   
# } 

[其他解释]
引用:
C# code
# // 将datatable转换为json  
# /// </summary>  
# /// <param name="dtb"></param>  
# /// <returns></returns>  
# private string Dtb2Json(DataTable dtb) {  
#     JavaScriptSerializer jss = new J……


最后一句:return jss.Serialize(dic); 括号中的参数只能是集合对象吗?
[其他解释]
JSON其实就是个字符串··
你想怎么拼接就怎么弄·
[其他解释]
用JavaScriptSerializer类来序列化,如果是多张表该怎么做的?
[其他解释]
引用:
将你取出来的数据序列化 Serializer

什么叫取出来,我将数据读出来变成一个datatable,这个时候算不算是取出来,可以直接序列化datatable吗?
[其他解释]
将你取出来的数据序列化 Serializer
[其他解释]
将datatable转换为json   

热点排行