您好,登錄后才能下訂單哦!
本篇內容主要講解“JSON的介紹和語法規則”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“JSON的介紹和語法規則”吧!
1.什么是json?
JSON全稱是JavaScript Object Notation,是一種輕量級的數據交換格式。JSON 與XML具有相同的特性,是一種數據存儲格式,但是JSON相比XML 更易于人編寫和閱讀,更易于生成和解析。
2.JSON的語法規則:
1)數據以名稱/值對的形式保存,名稱/值對包括字段名稱(在雙引號中),后面寫一個冒號,然后是值,如 :"firstName" : "John"。JSON的值可以是數字、字符串、null、true、false、數組或對象。
2)數據有都好分隔
3)花括號保存對象,對象可以包含多個名/值對。
4)方括號保存數組,數組可以包含多個對象。
5)JSON文件:
JSON 文件的文件類型是 ".json"
JSON 文本的 MIME 類型是 "application/json"
3.JSON 的兩種結構:
1)鍵值對形式,即Name-Value對的結構結構集合(無序的 )。如:{name1:value1.name2:value2,...};
{"name":"小明","age":"12"}
2)Array(有序的):一組有序的數據列表。例如:[value1,value2,value3,.....],其中,值可以是雙引號引起來的字符串(string)、數值(number)、true、false、null、對象(object)或者數組(Array),這些結構都是可以嵌套的。如:
例一:對象中可以包含數組
{"root":[{"id":"001","name":"小紅"},{"id":"002","name":"小明"},{"id":"003","name":"小麗"}],"total":3,"success":true}
例二:也可以對象嵌套子對象,子對象再嵌套數組:
{"memberList":{"lists":[{"id":"001","name":"小紅"},{"id":"002","name":"小明"},{"id":"003","name":"小麗"}]}}
例三:數組中可以包含對象:
[{"id":"001","name":"小紅"},{"id":"002","name":"小明"},{"id":"003","name":"小麗"},........]
4.JSON 的取值方式和修改方式:
如:
var employees = [
{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName": "Carter" }
];
取值:employees[0].lastName
修改數據:employees[0].lastName="Jobs"
5.JSON與字符串之間的轉化方法:
JSON轉換為字符串(string)格式:var string=JSON.stringify(obj);
將Json字符串轉換為JSON:
(1)var data=JSON.parse(string);
function strToJson(){
return JSON.parse(str);
}
使用JSON.parse需嚴格遵守JSON規范,如屬性都需要用引號引起來,否則會出錯,如下:
var str = '{name:"jack"}';
var obj = JSON.parse(str); // --> parse error
name沒有用引號引起來,使用JSON.parse所有瀏覽器中均拋異常,解析失敗。(下面這兩種方式則沒有問題)
(2)eval(string);
例如:function myEval(){
var str='{"id":"001","name":"小明","age":10}';
var obj=eval('('+str+')');
alert(obj.toJSONString());
}
(3) new Function形式
function strToJson(str){
var json=(new Function("return"+str))();
}
(4)jQuery中也有將字符串轉為JSON格式的方法jQuery.parseJSON( json ),接受一個標準格式的 JSON 字符串,并返回解析后的 JavaScript (JSON)對象
到此,相信大家對“JSON的介紹和語法規則”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。