在使用elementui時經常需要將數據轉換格式,用來回填數據和請求數據
如例子中,可動態增減的form表單,格式為[{name:'a',value:'1'},{name:'b',value:'2'}],發送接口請求時 需要轉換為{a:1,b:2},想反在編輯數據時需要將數據回填 又需要反過來轉換數據 ;
轉換數據需要有JS數據類型基礎,特別時對象和數組的基礎知識
1.A對象轉化為B對象
A:對象 {name:"username",value:"dsx"}
B對象 {username:dsx}
1 data:{ 2 headerForm: [{ 3 name: '', 4 value: '' 5 }], 6 parameterForm: [{ 7 name: '', 8 value: '' 9 }] 10 } 11 12 methods:{ 13 set_params_headers() { 14 // this.parameterForm 15 // {name:"username",value:"dsx"}---輸入類型(this.parameterForm) 16 // {username:dsx} ------輸出格式 17 var params = {}; 18 for (var num in this.parameterForm) { 19 var parameterObj = this.parameterForm[num] 20 params[parameterObj.name] = parameterObj.value 21 } 22 this.form.params = JSON.stringify(params) //json.dumps 將字典轉換為json 23 console.log(params) 24 console.log(this.form.params) 25 26 // this.headerForm 27 var headers = {}; 28 for (var num in this.headerForm) { 29 var headerObj = this.headerForm[num] 30 headers[headerObj.name] = headers.value 31 } 32 this.form.headers = JSON.stringify(headers) //json.dumps 將對象轉換為json 33 }, 34 }
1.B對象轉化為A對象
B對象 {username:dsx}
A:對象 {name:"username",value:"dsx"}
1 reset_headers_params(row) { 2 // this.parameterForm 3 // {username:dsx,passwd:123}-----輸入類型 4 // [{name:"username",value:"dsx"},{name:'passwd',value:'123'}] ---輸出類型 5 if (row) { 6 var params_data = [] 7 var parameterObj = JSON.parse(row) //json-loads 將json轉換為對象 8 for (var num in parameterObj) { 9 var params = {} 10 params['name'] = num 11 params['value'] = parameterObj[num] //組裝成對象 12 params_data.push(params) //添加到數組 13 } 14 this.parameterForm = params_data //初始化到parameterForm 15 16 var headers_data = [] 17 var headersObj = JSON.parse(row) 18 for (var num in headersObj) { 19 var headers = {} 20 params['name'] = num 21 params['value'] = headersObj[num] 22 headers_data.push(headers) 23 } 24 this.headerForm = headers_data 25 } else { 26 this.form.params = undefined; 27 this.form.headers = undefined 28 } 29 },