JavaScript中的物件與JSON_基礎知識
簡介
JSON即JavaScript Object Natation,它是一種輕量級的資料交換格式,非常適合伺服器與 JavaScript 的互動。
JSON是一種資料交換格式,像XML和YAML一樣是一種在各種不同語言間傳遞結構化訊息的方式。從另一方面來說,javascript物件是javascript語言中的一種資料類型,就像PHP中的陣列、C 中類別和結構體。
定義JSON與javascript物件
在javascript程式中定義物件的時候,物件的屬性名稱可以加雙引號也可以不加雙引號。如果屬性名稱包含特殊字元(如!、if等)的時候,就必須加雙引號。
在定義JSON的時候,屬性名稱必須加雙引號。
程式碼範例:
1.定義javascript物件
var obj={name:"tudouya","sex":"man"}; #兩個屬性可以加雙引號也可以不加
var obj={"!":"hello world"}; #屬性名包含特殊字元時必須加上雙引號
2.定義JSON字串
var jsonString={"name":"tudouya"}; #定義JSON時必須加雙引號
javascript物件轉換為JSON
1.javascript物件轉換為JSON
我們可以使用javascript的內建函數將javascript物件轉換為JSON,這個函數就是JSON.stringify().
程式碼範例:
var obj={name:"tudouya",sex:"man"};
var jsonObj=JSON.stringify(obj);
console.log(jsonObj);
##輸出結果為:{"name":"tudouya","sex":"man"}
在將javascript物件轉換為JSON的時候,有一點是需要我們注意的:
如果物件中包含有值為函數和日期的屬性,JSON會忽略值為函數的屬性,並將值為日期的屬性轉換為字串。
程式碼範例:
var obj={
name:"tudouya",
birthday:new Date(),
action:function (){
document.write("walk");
}
};
var jsonObj=JSON.stringify(obj);
console.log(jsonObj);
##輸出結果為:{"name":"tudouya","birthday":"2014-08-12T10:05:00.497Z"}
javascript解析JSON
在舊版的JS中,大家通常都會使用eval()函數來解析JSON,但是ECMAScript5給我們提供了一個解析JSON的新函數JSON.parse()。
這個函數的使用方法比較簡單,大家可以自行嘗試。當對某個JSON字串應用該函數以後,該JSON就被轉換為javascript的對象,也就是說當用typeof運算子查看該函數的類型時,返回的值是Object。
同樣有一點要注意的是,該函數是ECMAScript5以後才支援的,如果是舊版的瀏覽器那麼可能不支援該函數。解決的方法是載入一個實作該函數的js文件,即json2.js。如果使用的是JQuery框架,jQuery.parseJSON(),則函數呼叫了JSON.parse()方法。
關於使用eval()方法解析JSON,這個等深入學習後會記錄下來。
一個很重要的概念
作為一個前端菜鳥,經常聽到別人說“JSON對象”,但是其實並沒有“JSON對象”這個概念,JSON真正的表現形式是字符串。

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

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

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

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

Dreamweaver CS6
視覺化網頁開發工具

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

熱門話題

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

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

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

深入了解PHP:JSONUnicode轉中文的實作方法在開發中,我們經常會遇到需要處理JSON資料的情況,而JSON中的Unicode編碼在一些場景下會為我們帶來一些問題,特別是當需要將Unicode編碼轉換為中文字元時。在PHP中,有一些方法可以幫助我們實現這個轉換過程,以下將介紹常用的方法,並提供具體的程式碼範例。首先,讓我們先來了解一下JSON中Un

PHP中,數組是有序序列,以索引存取元素;物件是具有屬性和方法的實體,透過new關鍵字建立。數組存取透過索引,物件存取通過屬性/方法。數組值傳遞,物件參考傳遞。

PHP中的Request物件是用來處理客戶端傳送到伺服器的HTTP請求的物件。透過Request對象,我們可以取得客戶端的請求訊息,例如請求方法、請求頭資訊、請求參數等,從而實現對請求的處理和回應。在PHP中,可以使用$_REQUEST、$_GET、$_POST等全域變數來取得要求的信息,但是這些變數並不是對象,而是陣列。為了更靈活和方便地處理請求訊息,可

在C++中,函數傳回物件需要注意三點:物件的生命週期由呼叫者負責管理,以防止記憶體洩漏。避免懸垂指針,透過動態分配記憶體或返回物件本身來確保物件在函數返回後仍然有效。編譯器可能會最佳化傳回物件的副本生成,以提高效能,但如果物件是值語義傳遞的,則無需副本生成。

PHP陣列可透過json_encode()函數轉換為JSON字串(例如:$json=json_encode($array);),反之亦可用json_decode()函數從JSON轉換為陣列($array=json_decode($json);) 。其他技巧還包括:避免深度轉換、指定自訂選項以及使用第三方程式庫。
