php輸出json資料,導致前端js判斷錯誤的分析及解決
在前端渲染的時候出現錯誤,導致糾結了一天時間。最後還是在 就眠儀式 的幫助下排除了錯誤。
下面是錯誤原因及排除
-
在index.html中,原pear.config.json中關於預設樣式的程式碼如下
"theme": { "defaultColor": "2", "defaultMenu": "dark-theme", "allowCustom": true }, "colors": [{ "id": "1", "color": "#FF5722" }, { "id": "2", "color": "#5FB878" }, { "id": "3", "color": "#1E9FFF" }, { "id": "4", "color": "#FFB800" }, { "id": "5", "color": "darkgray" } ],
而我的PHP輸出程式碼是
$data['theme']['defaultColor']='2'; $data['theme']['defaultMenu']="dark-theme"; $data['theme']['allowCustom']=true; $data['colors'][0]=array('id'=>1,'color'=>"#FF5722"); $data['colors'][1]=array('id'=>2,'color'=>"#5FB878"); $data['colors'][2]=array('id'=>3,'color'=>"#1E9FFF"); $data['colors'][3]=array('id'=>4,'color'=>"#FFB800"); $data['colors'][4]=array('id'=>5,'color'=>"darkgray");
上面是原來輸出json的程式碼
二者對比如下:
經過 就眠儀式 的分析發現 colors 的差異(第28行開始),我輸出的json中colors元素中的id是數字(number),而原來json中colors元素中的id是字元(string)
在admin.js中364的getColorById(id)函式中,使用的是===,因為value.id和id型別不一樣,所以沒有符合條件的資料賦值給color,從而導致color變成 undefined
解決辦法:將php程式碼中的
$data['colors'][0]=array('id'=>1,'color'=>"#FF5722");
修改為
$data['colors'][0]=array('id'=>'1','color'=>"#FF5722");
(將id的值有數字改為字元)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69992267/viewspace-2885306/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PHP:判斷是否是JSON資料PHPJSON
- js判斷json中資料的真假JSON
- iOS請求的json資料解析錯誤問題解決iOSJSON
- 前端基礎——js資料型別及判斷方法前端JS資料型別
- js資料型別及判斷JS資料型別
- JSON.parse()出錯解決JSON
- 輸出判斷條件是或的解決方法
- PHP編譯錯誤及解決辦法PHP編譯
- goldengate命令輸入錯誤導致的血案2Go
- 解決掉電導致的ORA-600(4194)錯誤
- 輸出 JSON 資料時的 Content-TypeJSON
- 前端常見bug系列4:JavaScript中忘記型別轉換所導致的條件判斷錯誤舉例前端JavaScript型別
- merge語句導致的ORA錯誤分析
- golang 解析php輸出json相容問題GolangPHPJSON
- Node出錯導致執行崩潰的解決方案
- 資料庫連線錯誤的原因及解決方法資料庫
- 解決java socket在傳輸漢字時出現截斷導致亂碼的問題Java
- js資料型別的判斷JS資料型別
- git合併丟失程式碼問題分析與解決(錯誤操作導致)Git
- MySQL資料庫常見錯誤及解決方案MySql資料庫
- 解決 PBootCMS 中因資料庫名稱錯誤導致的“執行 SQL 發生錯誤!錯誤:no such table: ay_config”問題boot資料庫SQL
- js資料型別判斷和陣列判斷JS資料型別陣列
- PHP錯誤“Thisfilehasexpired”的解決方法PHP
- js判斷資料型別JS資料型別
- eclipse: workspace出錯導致無法啟用的解決Eclipse
- DBCA建庫導致已有資料庫出現ORA-27140錯誤資料庫
- go 協程操作map導致的資料競爭及解決方法Go
- 【北亞資料恢復】輸入錯誤命令導致MySQL資料庫資料被刪除的資料恢復案例資料恢復MySql資料庫
- 時區錯誤導致oracle的EM不能啟動解決辦法Oracle
- ORA-00257 錯誤分析及解決方法
- mysql與php錯誤解決MySqlPHP
- PHP初學者最常遇到的8個錯誤及解決方法PHP
- php操作JSON格式資料PHPJSON
- 資料庫升級導致ORA-918錯誤資料庫
- JS · \r\n被轉義導致出錯JS
- C++ 資料輸入cin (解決CLoin輸入中文程式出錯)C++
- CAS導致的ABA問題及解決
- python中json物件轉換出錯解決方法PythonJSON物件