前台数据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(); }

浙公网安备 33010602011771号