1、 json即javascript對象表示法(javascript object notion),可讀性強、很是適合數據傳輸。javascript中的對象字面量是json的基礎。例如數組、字符串和數值等類型的字面量,如:javascript
var anArray=[''hello','world'];//數組java
var aString='hello world';//字符串正則表達式
var aNumber=3.12;//數值json
var anObject={};//對象數組
var aBoolean=true;//布爾值數據結構
var aRegExp=/\d/g;//正則表達式函數
json構建於這些對象字面量的概念之上,並支持複雜的數據結構,其中能夠包括各類各樣的常見數據類型:spa
Numbers 數值類型,包括整數(0、一、2)、浮點數(6.98)和實數(6.02e23)。firefox
String 根據標準,字符串是由雙引號括起來的Unicode字符串,其中能夠使用反斜槓進行轉義。指針
Boolean true值或者false值。
Array 一個有序的值的序列。
Object '鍵-值'對。
Null 一個空指針。
2、從javascript 字面量到json
json是javascript對象表示法的一個子集,使用了javascript對象表示法中全部相同的規則和基礎數據類型。以下:
{
"customers":[
{
"name":"mr.li",
"sext":"man",
"age":30
},
{
"name":"mr.xiao",
"sext":"man",
"age":40
}
]
}
3、轉換json代碼
要將一個json字符串轉換爲一個javascript對象並具備可用格式,最簡單的辦法就是使用eval()函數進行轉換。
爲了便於使用eval()函數,須要將json代碼塊轉換爲一個javascript字符串:
var jsonString="{\"curstomers\":[{\"name\":\"mr.li\",\"sex\":\"man\",\"age\":30},{\"name\":\"mr.xiao\",\"sex\":\"man\",\"age\":30}]}";
var jsonObject=eval("("+jsonString+")");
通過eval()函數轉換後,經過以下方式就能夠訪問到該json對象:
alert(jsonObject.curstomers[1].name);//"mr.xiao"
在firefox和IE中,包含一個全局JSON對象。具備兩個方法:JSON.parse()方法和JSON.stringify()方法:
一、JSON.parse()語法以下: JSON.parse(text[,reviver]);
第一個參數text是一個包含了有效JSON結構的字符串。第二個參數reviver是一個可選的函數,用於篩選和轉換分析結果:var jsonObj=JSON.parse(jsonString);
二、JSON.stringify()用於將對象轉換成json:JSON.stringify(value[,replacer[,space]])
第一個參數value是一個想對之進行轉換的基本數據或者對象。第二個參數replacer是一個可選的操做函數或者數組引用.第三個參數space用於定義該結構在每一層級上如何進行縮進:var obj={a:20,b:'hello',c:true};var string=JSON.stringify(obj);//{"a":20,"b":"hello","c":true}