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)物件
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31543790/viewspace-2658915/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- package.json詳解PackageJSON
- package.json 詳解PackageJSON
- JSON基礎使用詳解JSON
- JSON Web Token 使用詳解JSONWeb
- Python解析JSON詳解PythonJSON
- json_decode詳解JSON
- JSON.parse 和 JSON.stringify 詳解JSON
- 標準庫~JSON物件詳解JSON物件
- npm package.json屬性詳解NPMPackageJSON
- java解析json字串詳解(兩種方法)JavaJSON字串
- axios請求JSON問題詳解iOSJSON
- composer.json 檔案引數詳解JSON
- JSON編碼格式提交表單資料詳解JSON
- 詳解JSON和JSONP劫持檢測程式碼以及解決方法JSON
- JSON資料及與其他各類資料轉換詳解JSON
- json詳細介紹(for Java)JSONJava
- 『動善時』JMeter基礎 — 30、JMeter中JSON斷言詳解JMeterJSON
- json的解釋JSON
- JSON 字串中的中括號和大括號區別詳解JSON字串
- js中eval詳解,用Js的eval解析JSON中的注意點JSON
- Java構造和解析Json資料的兩種方法詳解一JavaJSON
- 『動善時』JMeter基礎 — 35、JMeter介面關聯【JSON提取器】詳解JMeterJSON
- 前端介面神器之 Json Server 詳細指南前端JSONServer
- 詳解電子表格中的json資料:序列化與反序列化JSON
- SpringBoot 預設json解析器詳解和欄位序列化自定義Spring BootJSON
- 探索多種資料格式:JSON、YAML、XML、CSV等資料格式詳解與比較JSONYAMLXML
- Go JSON編碼與解碼?GoJSON
- JSON.parse()出錯解決JSON
- http協議/cookie詳解/session詳解HTTP協議CookieSession
- 蝦皮商品詳情介面返回資料的json格式JSON
- Spark SQL中對Json支援的詳細介紹SparkSQLJSON
- Lombok 註解詳解Lombok
- Java註解詳解Java
- Java 註解詳解Java
- Java註解最全詳解(超級詳細)Java
- jquery+Ajax框架處理,XML,JSON,GSON物件傳送!詳解+案列!struts2的支援jQuery框架XMLJSON物件
- HiveQL詳解Hive
- 詳解Inode