经常进行Json数据的传输。包括Ajax向服务端传递Json数据,用于查询,也包括服务端向前端返回Json数据,用于展示数据,那么Json字符串是怎么怎么生成的呢?
刚开始接触Json串时,总是感觉自己写的Json串时对的,但是运行程序却发现写的串时不对的?那么在前端如何写Json串呢?
data: "{'userName':'" + $("#<%=UserName.ClientID%>").val() + "'," + "'password':'" + $("#<%=Password.ClientID%>").val() + "'}"
写的时候应该注意:
1、对象以“{”开始,以“}”结束
2、名称:值并以“,”分开
3、值如果是字符串,必须使用双引号,数值类型不需要
4、数组是”[“开始,”]”结束
这样就可以在Js中得到Ajax使用的Json串
在服务端是如何使用的呢?
最简单粗暴的方式是采用Newtonsoft.Json.dll,直接序列换,无论何种Json串直接使用var构造出一个对象,
Json.dll
var ReportData = new
{
共计单位数量 = TotalUnit,
未填报单位数量 = UnCompleteUnitCount,
已填报单位数量 = CompleteUnitCount,
已审核单位数量 = CheckUnitCount,
未审核单位数量 = UnCheckUnitCount
};
如果是多个对象,可以再进一步构造一个复合对象
var JsonObj = new { ReportData = ReportData, WebDataList = WebSiteData, EnergyData = EnergyData };
还有一个表DataTable每一行作为一个对象,可以封装成一个dataList对象
然后调用
string OutJson = JsonConvert.SerializeObject(JsonObj, Formatting.None);
string OutJson = JsonConvert.SerializeObject(ReportData, Formatting.None);
string OutJson = JsonConvert.SerializeObject(dataList, Formatting.None);
以上将返回一个字符串,比起手动拼接字符串要方便的多