在一個電商項目中,少不了有商品,每個商品都有對應的商品信息,其中商品規格是每鍾商品都不一樣的以某平台的兩種商品為例,
某手機:
某衣服:
手機和衣服的商品規格是不相同的,手機有顏色、存儲等規格,衣服有尺碼、顏色等規格。那么商品規格在商品信息表中就不能把每一個規格都設計成一個字段,所以就要把所有的規格都設計成一個字段。例如下面就是某件商品的所有規格在數據表中的呈現,在這里設計成了一個JSON格式的字符串,對應的,在前端或者后台解析的時候也要用JSON解析。
前端解析:
后台將商品信息從數據庫讀取后,會傳到前端做數據的呈現,例如傳到前端的商品規格的數據是'{"顏色":["彩色"],"尺碼":["XS","S","M","L","XL","XXL"]}'。在這條JSON字符串中,每一個key就是該商品存在的規格,key對應的value,就是每個規格鍵下存在着哪些規格值。
var jsonObj=JSON.parse('{"顏色":["彩色"],"尺碼":["XS","S","M","L","XL","XXL"]}'); //遍歷所有的規格鍵 for (var key in jsonObj) { //在這里做打印規格鍵名的操作 //遍歷當前規格鍵下的規格值 for(var value in jsonObj[key]) { //在這里做打印規格值的操作 } }
再例如,在訂單中的商品,每個商品都選中了一套規格,在頁面或許需要做呈現操作,如:
在這里,“顏色:彩色, 尺碼:均碼”就是該商品的一套規格,這里相對商品信息中的規格就更簡單了,在數據庫中:
這也是一條JSON格式的字符串,在前端需要解析並做字符串拼接:
var jsonObj = JSON.parse('{"顏色":"彩色","尺碼":"均碼"}'); var specs = ""; for (var key in jsonObj) { specs += key+":"+jsonObj[key]+", " } specs = specs.substring(0,specs.length-2); //這樣得到的字符串就是“顏色:彩色, 尺碼:均碼”,可以在頁面上呈現了。