私はクライアント用のカスタムページビルダーを持っています。ドラッグアンドドロップバックエンドを使用して独自のWebフォームを構築できます。現時点でダイナミックフォームからネストされたJSONを作成
、私は次のようなJSON形式で出力したデータを取得することができます。
{
"email":"[email protected]",
"geoip_country":"XXYY",
"geoip_state":"XXYY",
"geoip_city":"XXYY",
}
をしかし、私は私が別のしたい、次の形式で出力を変更する必要がありますフォームからの電子メールのフィールドから、とdynamic_attributesセクション内にネストされた他のすべてのデータをドロップし、次のように:
{
"email":"[email protected]",
"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を表示 – charlietfl
動的属性と電子メールの両方が定数プロパティ名であり、動的属性内にネストされたデータは動的に生成されるものです。フィドルリンクを追加するように編集しました –
シンプルなフォームで、常に1つのプライマリフィールドが 'email'であり、他のすべてがネストされていますか?私はそれよりも複雑なレベルが高いと思う? – charlietfl