簡體   English   中英

創建JSON字符串以發布到jQuery / Javascript的Web服務中

[英]Create JSON string to post into a webservice in jQuery/Javascript

我有一個html表單,一個按鈕和一個單擊處理程序來管理表單的提交。 問題特別是關於通過AJAX提交表單的按鈕的處理程序。

這是我寫的處理程序:

JS:

            $('#create').click(function(event) {
                console.log('Create Button Click');
                var dataJSON = JSON.stringify( $('#customer_form').serializeArray() );
                console.log(dataJSON);
                $.ajax({
                    type: "POST",
                    url: "/customer/",
                    // The key needs to match your method's input parameter (case-sensitive).
                    data: dataJSON,
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function(data){
                        console.log('Success');
                        console.log(data);
                    },
                    failure: function(errMsg) {
                        console.log('Error');
                        console.log(errMsg);
                    }
                });
                event.preventDefault();
            });

我已經使用JSON.stringify( $('#customer_form').serializeArray() ); 生成JSON字符串,得到結果-如console.log(dataJSON)

[{"name":"name","value":"n"},{"name":"address_line_1","value":"a1"},{"name":"address_line_2","value":"a2"},{"name":"town","value":"t"},{"name":"postal_code","value":"p"},{"name":"region","value":"r"},{"name":"phone_1","value":"p"},{"name":"phone_2","value":"pa"},{"name":"fax","value":"f"},{"name":"email","value":"e"},{"name":"web","value":"w"}]

這將是獲得以下結構的最簡單方法:

[{"name": "n", "address_line_1": "a1", "address_line_2": "a2", "town": "t", "postal_code": "p", "region": "r", "phone_1": "p", "phone_2": "pa", "fax": "f", "email":"e", "web": "w"}]

這樣的事情應該起作用。

let obj = {}
for (let object in array) {
    obj[object['name']] = object['value']
} 

 var arr = [{"name":"name","value":"n"},{"name":"address_line_1","value":"a1"},{"name":"address_line_2","value":"a2"}, {"name":"town","value":"t"},{"name":"postal_code","value":"p"},{"name":"region","value":"r"},{"name":"phone_1","value":"p"},{"name":"phone_2","value":"pa"},{"name":"fax","value":"f"},{"name":"email","value":"e"},{"name":"web","value":"w"}]; var acc = {}; //firstly lets flat your name and value to one new object var newArr = arr.map(item=>{ var newItem={}; newItem[item.name] = item.value; return newItem; }); //secondly we reduce flat all rows inside the newArr.. //..to one unique object acc newArr.forEach(item=>{ Object.keys(item).forEach(key=> acc[key] = item[key]); }); //now you one unique object which you can serve.. // inside a new array [acc] console.log([acc]) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM