不积跬步,无以至千里;不积小流,无以成江海。

Dean's blog

  • Join Us on Facebook!
  • Follow Us on Twitter!
  • LinkedIn
  • Subcribe to Our RSS Feed

SQLServer JSON 应用示例 - easyui DataGrid

在使用easyui的DataGrid时,需要返回指定格式的JSON,格式如下:

{
       "total":28,
       "rows":[ ..... ]
}

其中:

        total        总记录数

        rows        当前加载的数据

在SQLServer 还不支持JSON数据前,我们一般需要:

        1、定义一个包含total和rows的类;

        2、检索总记录数和需要加载的数据并赋给上面定义类的实例;

        3、将对象序列化为JSON数据

而SQLServer支持JSON后,我们可以由数据库处理需要返回的数据,形式如下:

SELECT JSON_VALUE((SELECT COUNT(1) AS total FROM VendorBaseInfo FOR JSON AUTO), '$[0].total') total,
	   (SELECT TOP 5 CompanyFullName FROM VendorBaseInfo FOR JSON AUTO) rows
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER

其中:

        1、使用JSON_VALUE从对象中提取记录数;

        2、使用WITHOUT_ARRAY_WRAPPER去掉方括号;

        3、由于最外层的SELECT并没有直接从表中检索数据,所以必须使用JSON PATH,否则会报错。

返回的结果如下:

{
  "total":"5982",
  "rows":[
    {"CompanyFullName":"广州水泥生产公司"},
    {"CompanyFullName":"广州振中建设有限公司"},
    {"CompanyFullName":"广东赛博威信息科技有限公司"},
    {"CompanyFullName":"广东赛百威信息科技有限公司"},
    {"CompanyFullName":"广州市建安实业有限公司"}
  ]
}

Web服务器只需要将数据库返回JSON给浏览器即可,这样大大简化了Web的处理过程。

不允许评论
粤ICP备17049187号-1