JavaScript JSON對象(一)

1、JSON數據html

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

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

JSON具備如下的形式:編程

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

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>");
                        });
                    }
                });
            });

 

2、JSON對象安全

 JSON(JavaScript Object Notation) 是JavaScript編程語言的一個子集。正因JSON是JavaScript的一個子集,因此它可清晰的運用於此語言中。服務器

  eval函數 JSON文本轉換爲對象app

  爲了將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數組(三)數組對象使用整理

相關文章
相關標籤/搜索