最近我在做一个使用 JSON 的项目,我有两种方法从数据库中获取数据以方便我的 JavaScript 使用 Json 字符串,
首先
就是在数据库中做处理,形成一个Json字符串,像这样
select
ID,
'{ "Comments": ['+
Substring(
(SELECT
',{ '+
'"Comment" : "' + REPLACE(Comments,'"','\"') + '",'+
'"Name" : "' + REPLACE(Name,'"','\"') +
'}'
FROM JsonTbl
where JsonTbl.ID = tbl.ID
for xml path('')
),2,250000)
+'] }' as JsonData
from tbl
第二
就是从数据库中选取数据,不做任何处理,在前端做创建Json字符串的处理,像这样
DataTable data = GetDataFromDatabase();
StringBuilder sb = new StringBuilder();
sb.Append("{ \"Comments\": [");
for (int i = 0; i < data.Rows.Count; i++)
{
sb.Append("{");
sb.Append("\"Comment\" : \"" + data.Rows[i]["Comment"].ToString().Replace('"', '\"') + "\",");
sb.Append("\"Name\" : \"" + data.Rows[i]["Comment"].ToString().Replace('"', '\"') + "\"");
sb.Append("},");
}
sb.Remove(sb.Length - 1, 1);
我想知道从性能和维护的角度来看哪个更好。
注意:请考虑我已经修剪了代码以在此处发布原始代码比这大得多,而且我使用的是 MSSQL 2008 和 .Net(C#)
最佳答案
更好的方法是通过 SQL Server 获取数据,在 C# 中基于该数据创建一个对象,然后对 JSON 使用 JSON 序列化程序。可能是JSON.Net .您可能会遇到使用当前方法维护代码的问题。
关于c# - SQL VS 前端处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11809073/