為什麼eval()處理json格式資料需要多加一個小括號
由於現階段使用json格式資料在前後臺進行資料傳輸。
關於json更多內容可以參閱json教程。
下面就介紹一下為什麼eval()處理json格式資料需要多加一個小括號。
首先說明一點json格式資料是一個字串,很多人張口閉口json物件,其實這種叫法是錯誤的。
使用eval()將json格式資料轉換為javascript物件語法結構如下:
[JavaScript] 純文字檢視 複製程式碼var jsonObject = eval("(" + jsonFormat + ")");
看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼var strJSON='{"webName":"螞蟻部落","url":"softwhy.com","age":"2"}'; var jsonObj=eval("("+strJSON+")"); console.log(jsonObj.webName);
eval()會建立一個執行環境,在這個環境中,如果沒有多加一個小括號的話,就會被直接解讀為:
[JavaScript] 純文字檢視 複製程式碼{"webName":"螞蟻部落","url":"softwhy.com","age":"2"}
這將會被javascript解析為一個標籤語句,但是它又不完全符合標籤語句的語法,所以會報錯。
關於標籤語句可以參閱javascript label標籤語句一章節。
如果加上一個小括號的話,那麼就是如下樣子:
[JavaScript] 純文字檢視 複製程式碼({"webName":"螞蟻部落","url":"softwhy.com","age":"2"});
因為小括號這裡是一個分組運算子,這個時候{}內容就會被解讀為物件直接量,並返回這個物件直接量。
再來看一個程式碼例項加強一下理解:
[JavaScript] 純文字檢視 複製程式碼console.log(eval("{}")); console.log(eval("({})"));
相關文章
- 使用eval()將json字串轉換為物件要多加一個小括號JSON字串物件
- eval() JSON轉換 小括號 () 作用JSON
- ajax為什麼需要json格式響應資料?JSON
- eval()進行json轉換時新增小括號()的作用JSON
- Delphi處理JSON格式資料JSON
- 處理json格式的資料JSON
- Python資料處理(一):處理 JSON、XML、CSV 三種格式資料PythonJSONXML
- eval()將JSON格式字串轉換為物件JSON字串物件
- eval解析JSON字串的一個小問題JSON字串
- jQuery處理json格式資料程式碼例項jQueryJSON
- MyBatis SQL資料庫xml處理小於號與大於號正確的格式MyBatisSQL資料庫XML
- 為什麼需要資料治理
- 原生ajax處理json格式資料程式碼例項JSON
- 醫學影像AI為什麼需要小資料學習?AI
- 處理JSON資料JSON
- Linux中大括號主要作用是什麼?需要注意哪些?Linux
- MapReduce中對大資料處理最合適的資料格式是什麼?大資料
- flutter json資料處理FlutterJSON
- Hive處理Json資料HiveJSON
- JSON資料傳輸大法第一式——用OADate處理日期格式JSON
- 為什麼需要大資料安全分析?大資料
- 門店為什麼需要一個小程式?如何利用小程式來做營銷?
- JavaScript中圓括號()和方括號[]的一個特殊用法JavaScript
- 為什麼小資料更重要?
- eval() JSON轉換為物件JSON物件
- Swift-為什麼實現Equatable不需要處理OptionalSwift
- spark處理json資料DemoSparkJSON
- MyBatis SQL xml處理小於號與大於號正確的格式MyBatisSQLXML
- 為什麼需要DTO(資料傳輸物件)物件
- 為什麼你需要更精準的資料?
- JSON 字串中的中括號和大括號區別詳解JSON字串
- Python 為什麼說 Eval 要慎用?使用 Eval 帶來的潛在風險?什麼情況下使用 Eval?Python
- [譯] 為什麼需要在 React 類元件中為事件處理程式繫結 thisReact元件事件
- 什麼是eval()?eval是用來幹什麼的?
- 後設資料管理為什麼需要統一的元模型?模型
- 為什麼不建議使用eval和with?
- Laravel 統一錯誤處理為 JSONLaravelJSON
- JSON 資料格式JSON