我正在使用DOJO 1.8和spring mvc。我想将我的表单字段转换为JSON对象并将其传递给控制器。使用DOJO dom-form.toObject(“myForm1”),如果它是一个简单的对象,我可以将Json传递给控制器。
如果我的模型对象有内部对象,则.toObject()无法将其转换为嵌套的JSON对象。
var formObject1 = domForm.toObject("myForm1");
alert("hi");
require(["dojo/json"], function(JSON){
postData = JSON.stringify(formObject1);
});
dojo.byId("testdiv").innerHTML = postData;
和我得到的Json是
{ “名字”: “12345”, “中间名”: “乔安娜”, “姓氏”: “伊丽莎”, “address.addrLine1”: “ADD1”, “address.addrLine2”: “ADD2”,“地址.addrLine3 “:” ADD3" , “电子邮件”: “12345”}
但我需要如下,
{ “名字”: “12345”, “中间名”: “乔安娜”, “姓氏”: “伊丽莎” 的 “地址”:{ “addrLine1”: “ADD1”, “addrLine2”:“ADD2 ”, “addrLine3”: “ADD3”} 下, “电子邮件”: “12345”}
DOJO是否支持这种类型的JSON转换?
答案 0 :(得分:0)
Dojo有这种任务的各种方法。只需查看documentation并选择合适的解决方案。
答案 1 :(得分:0)
一个能完成这项工作的简短功能:
// lang = require("dojo/_base/lang");
function deepenObject(/*Object*/ object) {
object = lang.clone(object);
for(var key in object) {
if(object.hasOwnProperty(key) && ~key.indexOf(".")) {
lang.setObject(key, object[key], object);
delete object[key];
}
}
return object;
}
然后只是:
var result = deepenObject(formObject1);