首頁 web前端 js教程 JSON字串與物件之間的轉換詳解_json

JSON字串與物件之間的轉換詳解_json

May 16, 2016 pm 03:57 PM
json 字串 物件

JSON(JavaScript Object Notation) 是JavaScript程式語言的子集。正因JSON是JavaScript的子集,所以它可清晰的運用在此語言中。

eval函數 JSON文字轉換為物件

為了將JSON文字轉換為對象,可以使用eval函數。 eval函數呼叫JavaScript編輯器。由於JSON是JavaScript的子集,因此編譯器將正確的解析文字並產生物件結構。文字必須括在括號中避免產生JavaScript的語法歧義。
var obj = eval('(' JSONTest ')');eval函數非常快速。它可以編譯執行任何JavaScript程序,因此產生了安全性問題。當使用可信任與完善的原始程式碼時才可以使用eval函數。這樣可以更安全的解析JSON文字。使用XmlHttp的web應用,頁面之間的通訊只允許同源,因此是可以信任的。但這卻不是完善的。如果伺服器沒有嚴謹的JSON編碼,或沒有嚴格的輸入驗證,那麼可能傳送包含危險腳本的無效JSON文字。 eval函數將執行惡意的腳本。

JSON解釋器 JSON.parse、JSON.stringify

使用JSON解析器可以防止像eval函數轉換JSON文字為物件那樣的安全隱患。 JSON解析器只能辨識JSON文本,拒絕所有腳本。提供了本地JSON支援的瀏覽器的JSON解析器將遠快於eval函數。

目前,Firefox、Opera、IE8以上版本也提供了本地JSON支援。其中,JSON解釋器提供的函數有:JSON.parse、JSON.stringify。

對於那些不提供本地JSON支援的瀏覽器可以引入腳本json2.js,來實作JSON轉換功能。 json2.js腳本可到https://github.com/douglascrockford/JSON-js/blob/master/json2.js頁面下載。

JSON.parse 函數

將JSON文字轉換為物件。
JSON.parse(text[, reviver])
參數
text
必選項。要轉換為物件的JSON文字。
reviver
可選項。此參數是個替換函數。在轉換中,遍歷的每個節點,都將執行該函數,該函數的返回值將替代轉換結果的相應節點值。

JSON.stringify 函數

將物件轉換為JSON文字。
JSON.stringify(value[, replacer[, space]])
參數
text
必選項。要轉換為JSON文字的物件。
reviver
可選項。此參數是個替換函數。在轉換中,遍歷的每個節點,都將執行該函數,該函數的返回值將替代轉換結果的相應節點值。
space
可選項。格式化輸出JSON文字縮排的空格數量。如果不提供該參數將不會格式化輸出。
參數reviver的委託類型
reviver(key, value)
reviver函數的中的this是目前所遍歷到的節點的父節點。當遍歷的是根節點的時候,父節點是個Object對象,根節點是該物件的屬性,屬性名稱是空字串。
參數
key
當父節點是數組Object,key為數組索引,否則key為Object屬性名。
value
節點值。
註:JSON不支援循環資料結構。

jQuery.parseJSON( jsonTex )

jQuery中也有將字串轉為JSON格式的方法jQuery.parseJSON( json ),接受一個標準格式的 JSON 字串,並傳回解析後的 JavaScript (JSON)物件。當然如果有興趣可以自己封裝一個jQuery擴展,jQuery.stringifyJSON(obj)將JSON轉為字串。

以上所述就是本文的全部內容了希望大家能夠喜歡。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1663
14
CakePHP 教程
1420
52
Laravel 教程
1315
25
PHP教程
1266
29
C# 教程
1239
24
PHP 數組轉 JSON 的效能最佳化技巧 PHP 數組轉 JSON 的效能最佳化技巧 May 04, 2024 pm 06:15 PM

PHP數組轉JSON的效能最佳化方法包括:使用JSON擴充和json_encode()函數;新增JSON_UNESCAPED_UNICODE選項以避免字元轉義;使用緩衝區提高循環編碼效能;快取JSON編碼結果;考慮使用第三方JSON編碼庫。

PHP中int型別轉字串的方法詳解 PHP中int型別轉字串的方法詳解 Mar 26, 2024 am 11:45 AM

PHP中int型別轉字串的方法詳解在PHP開發中,常會遇到將int型別轉換為字串型別的需求。這種轉換可以透過多種方式實現,本文將詳細介紹幾種常用的方法,並附帶具體的程式碼範例來幫助讀者更好地理解。一、使用PHP內建函數strval()PHP提供了一個內建函數strval(),可以將不同類型的變數轉換為字串類型。當我們需要將int型別轉換為字串型別時,

怎麼重複字串_python重複字串教程 怎麼重複字串_python重複字串教程 Apr 02, 2024 pm 03:58 PM

1.先開啟pycharm,進入到pycharm首頁。 2.然後新建python腳本,右鍵--點選new--點選pythonfile。 3.輸入一段字串,代碼:s="-"。 4.接著需要把字串裡面的符號重複20次,代碼:s1=s*20。5、輸入列印輸出代碼,代碼:print(s1)。 6.最後運行腳本,在最底部會看到我們的回傳值:-就重複了20次。

Jackson庫中註解如何控制JSON序列化和反序列化? Jackson庫中註解如何控制JSON序列化和反序列化? May 06, 2024 pm 10:09 PM

Jackson庫中的註解可控制JSON序列化和反序列化:序列化:@JsonIgnore:忽略屬性@JsonProperty:指定名稱@JsonGetter:使用獲取方法@JsonSetter:使用設定方法反序列化:@JsonIgnoreProperties:忽略屬性@ JsonProperty:指定名稱@JsonCreator:使用建構子@JsonDeserialize:自訂邏輯

如何將 MySQL 查詢結果陣列轉換為物件? 如何將 MySQL 查詢結果陣列轉換為物件? Apr 29, 2024 pm 01:09 PM

將MySQL查詢結果陣列轉換為物件的方法如下:建立一個空物件陣列。循環結果數組並為每一行建立一個新的物件。使用foreach迴圈將每一行的鍵值對賦給新物件的對應屬性。將新物件加入到物件數組中。關閉資料庫連線。

PHP 函數如何傳回物件? PHP 函數如何傳回物件? Apr 10, 2024 pm 03:18 PM

PHP函數可以透過使用return語句後接物件實例來傳回對象,從而將資料封裝到自訂結構中。語法:functionget_object():object{}。這允許創建具有自訂屬性和方法的對象,並以對象的形式處理資料。

Golang 字串修改詳解:動態調整與可變性 Golang 字串修改詳解:動態調整與可變性 Apr 08, 2024 pm 03:27 PM

GoLang中的字串雖然不可變,但可透過以下技術動態修改:使用字串連接符號連接字串。使用字串格式化建立新字串。修改字串底層位元組切片。使用第三方庫提供的可變字串類型。

PHP字串操作:去除多餘逗號,保留唯一逗號實作技巧 PHP字串操作:去除多餘逗號,保留唯一逗號實作技巧 Mar 28, 2024 pm 03:02 PM

PHP字串操作:去除多餘逗號,保留唯一逗號實作技巧在PHP開發中,字串處理是一個非常常見的需求。有時候我們需要對字串進行處理,去除多餘的逗號,保留唯一的逗號。在這篇文章中,我將介紹一種實作技巧,並提供具體的程式碼範例。首先,我們來看一個常見的需求:假設我們有一個包含多個逗號的字串,我們需要去除多餘的逗號,只保留唯一的逗號。例如,將"apple,ba

See all articles