【发布时间】:2017-11-13 00:24:09
【问题描述】:
我有一个客户自定义页面构建器,他们可以通过拖放后端构建自己的 Web 表单。
目前,我可以将数据以 JSON 格式输出,如下所示:
{
"email":"xx@yy.com",
"geoip_country":"XXYY",
"geoip_state":"XXYY",
"geoip_city":"XXYY",
}
但是,我需要将输出更改为以下格式,我想从表单中分离出电子邮件字段,并删除嵌套在 dynamic_attributes 部分中的所有其他数据,如下所示:
{
"email":"xx@yy.com",
"dynamic_attributes":{
"geoip_country":"XXYY",
"geoip_state":"XXYY",
"geoip_city":"XXYY",
// all other form fields here.
},
}
谁能指出我正确的方向?我对输出 JSON 的经验并不丰富 - 我还应该补充一点,json 是从以下 jQuery 函数创建的:
(function ($) {
$.fn.serializeFormJSON = function () {
var o = {};
var a = this.serializeArray();
$.each(a, function () {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
})(jQuery);
见小提琴:https://jsfiddle.net/fish_r/m46zLdo9/3/
谢谢!
【问题讨论】:
-
dynamic_attributes是常量属性名吗?如果不是,该属性名称来自哪里?字段如何区分为主要字段或子字段?显示一些示例 html -
动态属性和电子邮件都是常量属性名称,嵌套在动态属性中的数据是动态生成的。编辑添加小提琴链接
-
所以它是一个简单的表单,并且总是有一个主要字段是
email,而所有其他字段都是嵌套的?我怀疑有比这更高级别的复杂性吗?
标签: javascript jquery json api