JavaScript JSON的key 下劃線格式與駝峰格式互相轉換
阿新 • • 發佈:2018-12-17
我們編碼的格式是使用駝峰式還是下劃線格式,這個爭論由來已久,這不,我負責的vue.js前端剛剛做好,發現後臺介面是使用Python寫的,導致介面的所有欄位都是下劃線格式的,而我又希望介面改成駝峰格式,後臺開發肯定不幹,so,我自己動手,在傳送請求的時候,將駝峰改成下劃線格式,在獲取響應的時候,將下劃線格式轉換成駝峰格式,下面是程式碼:
// 字串的下劃線格式轉駝峰格式,eg:hello_world => helloWorld function underline2Hump(s) { return s.replace(/_(\w)/g, function(all, letter) { return letter.toUpperCase() }) } // 字串的駝峰格式轉下劃線格式,eg:hello_world => helloWorld function hump2Underline(s) { return s.replace(/([A-Z])/g, '_$1').toLowerCase() } // JSON物件的key值轉換為駝峰式 function jsonToHump(obj) { if (obj instanceof Array) { obj.forEach(function(v, i) { jsonToHump(v) }) } else if (obj instanceof Object) { Object.keys(obj).forEach(function(key) { var newKey = underline2Hump(key) if (newKey !== key) { obj[newKey] = obj[key] delete obj[key] } jsonToHump(obj[newKey]) }) } } // JSON物件的key值轉換為下劃線格式 function jsonToUnderline(obj) { if (obj instanceof Array) { obj.forEach(function(v, i) { jsonToUnderline(v) }) } else if (obj instanceof Object) { Object.keys(obj).forEach(function(key) { var newKey = hump2Underline(key) if (newKey !== key) { obj[newKey] = obj[key] delete obj[key] } jsonToUnderline(obj[newKey]) }) } }
程式碼就不解釋了,一看就懂,網上都是關於java轉換的相關資料,JavaScript實現的幾乎沒有,所以就直接造輪子了,程式碼很簡單,就是遞迴而已,但是除錯花了我很長時間,? 就醬!