json物件與陣列以及轉換成js物件的方法
阿新 • • 發佈:2019-02-05
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