后台:
TreeNode node = new TreeNode();
node.data.titleEn = replaceTitleTag(data.TitleNo + " " + data.TitleText); node.data.title = node.data.titleEn; node.attr.id = data.ID.ToString(); System.Web.Script.Serialization.JavaScriptSerializer j = new System.Web.Script.Serialization.JavaScriptSerializer(); json = j.Serialize(node); result = "{success:true,info:" + info + ",json:" + json + "}";//嵌套json return result; 前台:
function(data) {
// alert(data); var data = eval("(" + data + ")"); if (data["success"] == false) { alert(data.info); } if (data.success == true) { var jslia = data.json; // var jslia = { "attr": { "href": "", "id": "7059" }, "data": { "attr": { "href": "", "id": 7059 }, "title": "添加的节点 " }, "state": "closed" }; $("#treePanel").jstree("create", null, "last", jslia, null, true); } 、、、参考:
DataContractJsonSerializer 可以处理其中的键类型不是字符串的词典,而 JavascriptSerializer 则无法处理,在这一方面前者的功能更为强大。但后者与 JSON 的兼容性更好。DataContractJsonSerializer 将其表示为 [{"Key":"one","Value":1},{"Key":"two","Value":2}] JavascriptSerializer 将其表示为 {“one”:1,”two”:2} http://zhidao.baidu.com/question/159760746.html msdn
操作json类型数据的两种方法
使用DataContractJsonSerializer碰到的两个问题
使用过程中碰到过两种问题,第一个是DateTime.MinValue不能序列化的问题
第二个问题是,装箱后数据类型的丢失问题,例如把一个Guid类型的数据给一个object的属性或成员,而序列化后,再反序列化回来的对象的值(object)则不再是一个Guid的值了,而变成了一个string类型的值了。这个问题是我在把一些界面操作数据保存到本地文本文件然后加载这些文件序列化的时候发现的。这个问题对于DataContractJsonSerializer来说似乎是个很难解决的问题。所以在使用DataContractJsonSerializer的时候应尽可能的避免使用object类型的设计
|
|
来自: 雄Frank > 《jquery.autocomplete》