1. 程式人生 > >JavaScript JSON對象(一)

JavaScript JSON對象(一)

.cn 本地 array .html ava .ajax 轉義 pan 嚴格

一、JSON數據

JSON(JavaScript Object Notation,JavaScript對象表示法)是一種輕量級的數據交換格式。

JSON是“名值對”的集合。結構由大括號‘{}‘,中括號‘[]‘,逗號‘,‘,冒號‘:‘,雙引號‘“”‘組成,包含的數據類型有Object,Number,Boolean,String,Array, NULL等。

JSON具有以下的形式:

對象(Object)是一個無序的“名值對”集合,一個對象以”{”開始,”}”結束。每個“名”後跟著一個”:”,多個“名值對”由逗號分隔。如:

var user={"name":"張三","gender":"男","birthday":"1980-8-8"}

數組(Array)是值的有序集合,一個數組以“[”開始,以“]”結束,值之間使用“,”分隔。如:

var userlist=[{"user":{"name":"張三","gender":"男","birthday":"1980-8-8"}},{"user":{"name":"李四","gender":"男","birthday":"1985-5-8"}}];

字符串(String)是由雙引號包圍的任意數量的Unicode字符的集合,使用反斜線轉義。

//js解析json數組的字符串格式

$(".one").click(function () {
                $.ajax({
                    url: "../logic/November.ashx",
                    data: { "code": "one" },
                    type: "post",
                    dataType: "",
                    success: function (data, http) {
                        
var json = eval(‘(‘ + data + ‘)‘); $.each(json, function (key, val) { $("p").append(key+"---->>> "+val+"<Br>"); }); } }); });

二、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函數。

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

JSON.parse: 將json字符串轉換成內存對象

JSON.stringify: 將json對象轉換成字符串。

技術分享圖片

更多:

Javascript 字符串(二)常用操作整理

Javascript 字符串(一)常見函數使用

JavaScript數組(三)數組對象使用整理

JavaScript JSON對象(一)