分享

json序列化整理

 雄Frank 2011-12-08
后台:
      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类型的设计

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多