jenney.qiu

导航

将一张表里的数据转换为json字符串

1.创建一个JsonHelper.cs类,注意要添加引用using Newtonsoft.Json;

public class JsonHelper
{
public JsonHelper()
{
//
//TODO: 在此处添加构造函数逻辑
//
}

public static string DataTableToJSON(DataTable dt, string dtName)
{
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);

using (JsonWriter jw = new JsonTextWriter(sw))
{
JsonSerializer ser = new JsonSerializer();
jw.WriteStartObject();
jw.WritePropertyName(dtName);
jw.WriteStartArray();
foreach (DataRow dr in dt.Rows)
{
jw.WriteStartObject();

foreach (DataColumn dc in dt.Columns)
{
jw.WritePropertyName(dc.ColumnName);
ser.Serialize(jw, dr[dc].ToString());
}

jw.WriteEndObject();
}
jw.WriteEndArray();
jw.WriteEndObject();

sw.Close();
jw.Close();

}

return sb.ToString();
}
}

2、调用方法JsonHelper.DataTableToJSON(ds.Tables[0], "article");此方法返回一个字符串data

3、将第二部获取的字符串转换为json格式发送给客户端
  var json = eval('(' + data+ ')'); //此处必须要加一个小括号
4、取json里的数据
  读json里的数据就要了解Json里的格式
  如第一步里的表的设计是这样的:

DataTable dt = new DataTable();
DataColumn dcText = new DataColumn("dayText");
DataColumn dcValue = new DataColumn("dayValue");
dt.Columns.AddRange(new DataColumn[] { dcText, dcValue });

  表名叫test插入了两条数据"first":"1","second":"2",那么生成的第二步的字符串就是{test:[{"dayText":"first","datValue":"1"},{“dayText”:"second","dayValue":"2"}]}
  将字符串转换为Json.
  解析Json:
  ①.遍历取出所有记录
    $.each(json.test,function(index,record){
          record.dayText;//字段dayText
    record.dayValue;//字段dayValue
    })
  ②.单独取出某条记录
   json.test[0].dayText;//取出第一条记录的dayText字段

posted on 2012-03-16 16:49  jenney.qiu  阅读(649)  评论(0编辑  收藏  举报