在JavaScript中使用JSON資料_javascript技巧
JSON 是 JavaScript 原生格式,這表示 在 JavaScript 中處理 JSON 資料不需要任何特殊的 API 或工具包。
JSON語法
JSON建構於兩種結構:
物件——名稱/值對的集合。不同的語言中,它被理解為對象,紀錄,結構,字典,哈希表,有鍵列表(keyed list),或關聯數組。一個物件以「{」(左括號)開始,「}」(右括號)結束。每個「名稱」後面跟著一個「:」(冒號);「『名稱/值' 對」之間使用「,」(逗號)分隔。
數組——值的有序列表。在大部分語言中,它被理解為數組。一個陣列以「[」(左中括號)開始,「]」(右中括號)結束。值之間使用“,”(逗號)分隔。
JSON沒有變數或其他控制結構。 JSON只用於資料傳輸。
將JSON 資料賦值給變數
例如,可以建立一個新的 JavaScript 變量,然後將 JSON 格式的資料字串直接賦值給它:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
這非常簡單;現在 people 包含前面看到的 JSON 格式的資料。但是,這還不夠,因為存取資料的方式似乎還不明顯。
存取資料
儘管看起來不明顯,但是上面的長字串其實只是一個陣列;將這個陣列放進 JavaScript 變數之後,就可以很輕鬆地存取它。實際上,只需用點號表示法來表示陣列元素。所以,要存取 programmers 清單的第一個條目的姓氏,只需在 JavaScript 中使用下面這樣的程式碼:
1 |
|
注意,陣列索引是從零開始的。所以,這行程式碼首先存取 people 變數中的資料;然後移動到稱為 programmers 的條目,再移動到第一個記錄( [0] );最後,存取 lastName 鍵的值。結果是字串值 “McLaughlin” 。
以下是幾個使用相同變數的範例。
1 2 3 4 5 6 |
|
利用這樣的語法,可以處理任何 JSON 格式的數據,而不需要使用任何額外的 JavaScript 工具包或 API 。
修改 JSON 資料
如同可以用點號和括號存取數據,也可以用相同的方式輕鬆修改資料:
1 |
|
在將字串轉換為 JavaScript json 格式物件之後,就可以像這樣修改變數中的資料。
注意:json 格式的物件和 json 文字是不同的
1 2 |
|
轉換回字串
當然,如果不能輕鬆地將物件轉換回本文提到的文字格式,那麼所有資料修改都沒有太大的價值。在 JavaScript 中這種轉換也很簡單:
1 |
|
這樣就行了!現在就獲得了一個可以在任何地方使用的文字字串,例如,可以將它用作 Ajax 應用程式中的請求字串。
更重要的是,可以將任何 JavaScript 物件轉換為 JSON 文字。並非只能處理原先用 JSON 字串賦值的變數。為了對名為 myObject 的物件進行轉換,只需執行相同形式的命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
這就是 JSON 與其他資料格式之間最大的差異。如果使用 JSON ,只需呼叫一個簡單的函數,就可以獲得經過格式化的數據,可以直接使用了。對於其他資料格式,需要在原始資料和格式化資料之間進行轉換。即使使用 Document Object Model 這樣的 API (提供了將自己的資料結構轉換為文字的函數),也需要學習這個 API 並使用 API 的對象,而不是使用原生的 JavaScript 物件和語法。
最終結論是,如果要處理大量 JavaScript 對象,那麼 JSON 幾乎肯定是一個好選擇,這樣就可以輕鬆地將資料轉換為可以在請求中發送給伺服器端程式的格式(Ajax) 。
JSON字串轉換為JSON物件的方法
要使用上面的str1,必須使用下面的方法先轉換成JSON物件:
1 2 |
|
或
1 |
|
或
1 |
|
然後,就可以這樣讀取:
1 2 |
|
特別注意:如果obj本來就是一個JSON對象,那麼使用eval()函數轉換後(哪怕是多次轉換)還是JSON對象,但是使用parseJSON()函數處理後會有問題(拋出語法異常) 。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

Python和JavaScript在開發環境上的選擇都很重要。 1)Python的開發環境包括PyCharm、JupyterNotebook和Anaconda,適合數據科學和快速原型開發。 2)JavaScript的開發環境包括Node.js、VSCode和Webpack,適用於前端和後端開發。根據項目需求選擇合適的工具可以提高開發效率和項目成功率。
