JSON(JavaScript Object Notation)是一種輕量級的數據交換語言,是javascript的一個子集,而且獨立於語言的文本格式,採用了相似於C語言的一些習慣。
javascript
JSON用於描述數據結構,有如下形式存在。
java
因爲 JSON 是 JavaScript 的子集,因此通常都會使用eval()做爲讀取數據的方式,若是是針對可靠的數據來源,在不支持原生 JSON 解析的瀏覽器上面這是最快速的方法。然而因爲 eval 方法一樣能夠執行任意的 JavaScript 代碼,所以當數據來源不可靠時則可能產生安全性問題。以下面的例子,直接用 eval 執行時會跳轉:var json = { message: (function () { window.location='http://zh.wikipedia.org/wiki/JSON#.E5.AE.89.E5.85.A8.E6.80.A7.E5.95.8F.E9.A1.8C'; })() };
其中一種防止不安全代碼出現的解決辦法,是經過瀏覽器原生支持的 JSON.parse(str) 方法讀取 JSON 數據,目前已經獲得大部分主流瀏覽器的支持(IE8+,Firefox 3.5+,Chrome4+/Safari4+,Opera10+),在不支持原生 JSON 對象的瀏覽器上面能夠使用parseJSON方法進行讀取,parseJSON採用解析器驗證讀入的代碼是否真的是 JSON 代碼,這樣就提供了較好的安全性。但因爲這是用模擬的方式讀取,速度上會比eval()慢。 json
var json = JSON.parse(str);
3.取json中key對應的值 數組
<script type="text/javascript">
function getJson(key){
var jsonObj={"name":"傅紅雪","age":"24","profession":"刺客"};
//一、使用eval方法
var eValue=eval('jsonObj.'+key);
alert(eValue);
//二、遍歷Json串獲取其屬性
for(var item in jsonObj){
if(item==key){ //item 表示Json串中的屬性,如'name'
var jValue=jsonObj[item]; //key所對應的value
alert(jValue);
}
}
//三、直接獲取
alert(jsonObj[''+key+'']);
}
getJson('age');
</script>
經過上面內容的理解,通常JSON問題都應該解決了......
瀏覽器