怎么将数据库中读取出来的数据变成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);
#
# }
[其他解释]
最后一句:return jss.Serialize(dic); 括号中的参数只能是集合对象吗?
[其他解释]
JSON其实就是个字符串
你想怎么拼接就怎么弄
[其他解释]
用JavaScriptSerializer类来序列化,如果是多张表该怎么做的?
[其他解释]
什么叫取出来,我将数据读出来变成一个datatable,这个时候算不算是取出来,可以直接序列化datatable吗?
[其他解释]
将你取出来的数据序列化 Serializer
[其他解释]
将datatable转换为json