1. 程式人生 > >json物件與陣列以及轉換成js物件的方法

json物件與陣列以及轉換成js物件的方法

JSON 語法規則

JSON 語法是 JavaScript 物件表示法語法的子集。

  • 資料在名稱/值對中
  • 資料由逗號分隔
  • 花括號儲存物件
  • 方括號儲存陣列

JSON 物件

JSON 物件在花括號中書寫:

物件可以包含多個名稱/值對:

{ "firstName":"John" , "lastName":"Doe" }

這一點也容易理解,與這條 JavaScript 語句等價:

firstName = "John"
lastName = "Doe"

JSON 陣列

JSON 陣列在方括號中書寫:

陣列可包含多個物件:

{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}

在上面的例子中,物件 "employees" 是包含三個物件的陣列。每個物件代表一條關於某人(有姓和名)的記錄。

JSON 檔案

  • JSON 檔案的檔案型別是 ".json"
  • JSON 文字的 MIME 型別是 "application/json"

JSON文字轉換為 JavaScript 物件

JavaScript 函式 eval() 可用於將 JSON 文字轉換為 JavaScript 物件。

eval() 函式使用的是 JavaScript 編譯器,可解析 JSON 文字,然後生成 JavaScript 物件。必須把文字包圍在括號中,這樣才能避免語法錯誤:

var obj = eval ("(" + jsontxt + ")");

示例:

    $.ajax({
        type: 'POST',
        url: '../../caseHandler.ashx?action=GetCase&id=' + id.toString(), //url  action是方法的名稱
        data: "",
        dataType: "text", //可以是text,如果用text,返回的結果為字串;如果需要json格式的,可以設定為json
        ContentType: "application/json; charset=utf-8",
        success: function (returnedData) {
            getMarkerFeature(eval("(" + returnedData+ ")"));
        },
        error: function (msg) {
            alert("訪問失敗:"+ msg);
        }
    });


通過JavaScript建立物件陣列

var employees = [
{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName": "Carter" }
];

JavaScript物件屬性訪問的兩種方式

object.attribute

object["attribute"]

例如:

var employees = [
{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName": "Carter" }
];
alert(employees[0].lastName);
alert(employees[0]["lastName"]);
var employees = [
{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName": "Carter" }
];
alert(employees[0].lastName); // 方式一
alert(employees[0]["lastName"]); // 方式二

部分參考摘錄自:JSON 語法 http://www.w3school.com.cn/json/json_syntax.asp

json陣列物件和物件陣列 http://www.cnblogs.com/zhangji/archive/2011/09/02/2163811.html