前台数据Json的转换和后台的保存

  • 前台对象的获取,根据用的地方不同,一个示例代码

通过Save方法能把数据转换成一个字符串,通过Ajax或者其他方法传递到后台进行处理、保存。

function Save() {
  var arrObj = [];
  for(var i = 0; i < values.length; i++) {
      var value = values[i];
      var obj = new Object();
      obj.ID = value .id;
      obj.SourceID = value .source.id;
      obj.TargetID = value .target.id;
      arrObj.push(obj)
  }
  var arrObjStr = obj2str(arrObj);
}
functon obj2str(o) {
  var r = [];
  if (typeof o == "string") return "\"" + o.replace(/([\'\"\\])/g, "\\$1").replace(/(\n)/g, "\\n").replace(/(\r)/g, "\\r").replace(/(\t)/g, "\\t") + "\"";
  if (typeof o == "undefined") return "";
  if (typeof o == "object") {
  if (o === null) return "null";
  else if (!o.sort) {
    for (var i in o)
      r.push(i + ":" + this.obj2str(o[i]))
      r = "{" + r.join() + "}"
  } else {
    for (var i = 0; i < o.length; i++)
      r.push(this.obj2str(o[i]))
      r = "[" + r.join() + "]"
    }
    return r;
  }
  return o.toString();
}
  • 传递到后台的格式

[{ID:"id1",SourceID: "SourceID1",TargetID:"TargetID1"},{ID:"id3",SourceID: "SourceID3",TargetID:"TargetID3"},{ID:"id3",SourceID: "SourceID3",TargetID:"TargetID3"}]

下面是fiddler的截图

  • 后台解析保存方法

下面代码是把string转换成Object[]的方法,并且取到没一个值,然后随意你怎么保存了!

//需要添加System.Web.Extensions的引用,并且需要是.NETFrameWork3.5或者4(非Client Profile)
using System.Web.Script.Serialization;
JavaScriptSerializer serializer = new JavaScriptSerializer();
var arrObj = (object[])serializer.DeserializeObject(arrObjStr);
 foreach (var item in arrObj ) {
    Dictionary<string, object> tempObj = (Dictionary<string, object>)item;
    string id = tempObj["ID"].ToString();
    string socurceIDStr = tempObj["SourceID"].ToString();
    string targetIDStr = tempObj["TargetID"].ToString();
}

 

posted @ 2012-12-05 17:53  unlean  阅读(447)  评论(0编辑  收藏  举报