最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JSON 和 JavaScript eval使用說(shuō)明

 更新時(shí)間:2010年06月13日 00:13:23   作者:  
JSON (JavaScript Object Notation) 一種輕量級(jí)的數(shù)據(jù)交換格式,比 XML 更輕巧,JSON 是JavaScript 原生格式,這意味著 JavaScript 中處理 JSON 數(shù)據(jù)不需要任何 API 和工具包。
JSON 格式可以使對(duì)象(object)、數(shù)組(array)、值(value)、字符串(string)、數(shù)值(number)。
復(fù)制代碼 代碼如下:

<script type="text/javascript">
var user = {
"Name":"Andy",
"Sex" :"man",
"Age" :"20",
"Phone":{"mobilephone":"123456789","telephone":"1234-12345678"},
"baby":[{"big":"xiaohong"},{"middle":"xiaoming"},{"small":"xiaoli"}] //包含數(shù)組
}
alert(user.Name);
alert(user.Phone.mobilephone);
alert(user.baby[0].big);
user.baby[0].big = "--";//修改了 JSON 值
alert(user.baby[0].big);
</script>

參考:http://www.json.org/json-zh.html



  下面來(lái)看看 JavaScript 的 eval 函數(shù)。
  eval 函數(shù)會(huì)評(píng)估給定的一個(gè)JavaScript代碼的字符串,并試圖去執(zhí)行包含在字符串里的表達(dá)式或者一系列的合法的 JavaScript 語(yǔ)句。eval 函數(shù)將把最后一個(gè)表達(dá)式或者語(yǔ)句包含的值或引用作為返回值。

代碼
復(fù)制代碼 代碼如下:

<script type="text/javascript">
var bar = "bar";
var foobar = eval('"foo"+bar');
alert(bar + foobar);//執(zhí)行語(yǔ)句
foobar = eval('if(bar = "bar"){bar = "foo-bar";}else{bar = "bar-foo";}');
alert(foobar);//返回語(yǔ)句中包含的值
</script>

  JSON 和 對(duì)象字面量(Object Literals)的區(qū)別:JSON 的名字部分嚴(yán)格用引號(hào)+名字來(lái)表示。
代碼
復(fù)制代碼 代碼如下:

<script type="text/javascript">
//對(duì)象字面量
var objectLiteral = {
name:"Objector.L",
age:"24",
special:"JavaScript",
sayName:function(){
return this.name;
}
};
//JSON 對(duì)象
var jsonFormat = {
"summary":"Blogs",
"blogrolls":[
{
"title":"Explore JavaScript",
"link":"http://example.com"
},
{
"title":"Explore JavaScript",
"link":"http://example.com"
}
]
};
</script>

  由于 Ajax 的興起, JSON 這種輕量級(jí)的數(shù)據(jù)格式作為客戶端與服務(wù)器端之間傳輸?shù)母袷街饾u流行起來(lái),進(jìn)而出現(xiàn)的問(wèn)題是如何將服務(wù)器端構(gòu)建好的 JSON 數(shù)據(jù)轉(zhuǎn)換為可用的 JavaScript 對(duì)象,利用 eval 函數(shù)無(wú)疑是一種簡(jiǎn)單而直接的方法。在轉(zhuǎn)化的時(shí)候需要將 JSON 字符串的外面包裝一層園括號(hào):

var jsonObject = eval("("+ jsonFormat +")")

  加園括號(hào)的目的是迫使 eval 函數(shù)在評(píng)估 JavaScript 代碼的時(shí)候強(qiáng)制將括號(hào)內(nèi)的表達(dá)式(expression)轉(zhuǎn)換為對(duì)象,而不是作為語(yǔ)句(statement)來(lái)執(zhí)行。舉一個(gè)例子,例如對(duì)象字面量{},如若不佳加外層的括號(hào),那么eval會(huì)將大括號(hào)之別為JavaScript代碼塊的開(kāi)始結(jié)束標(biāo)記機(jī),那么{}將被認(rèn)為是執(zhí)行了一句空語(yǔ)句。所以下面兩個(gè)執(zhí)行結(jié)果是不同的:


復(fù)制代碼 代碼如下:

alert(eval("{}")); //return undefined
alert(eval("({})")); //return [object Object]

  JSON 格式的名字部分為什么要加引號(hào)?因?yàn)閑val函數(shù)會(huì)將{foo:"bar"}解釋成合法的JavaScript 語(yǔ)句,而非表達(dá)式。但人們往往是想讓eval將這段代碼解釋成一個(gè)對(duì)象。所以JSON 格式會(huì)強(qiáng)制你去在名字的外側(cè)加上引號(hào),再結(jié)合圓括號(hào),eval就不會(huì)錯(cuò)誤的將JSON解釋成代碼塊。
  
復(fù)制代碼 代碼如下:

//eval 錯(cuò)誤解析語(yǔ)義
alert(eval('{foo:"bar"}')); //return "bar",incorrect
//eval 正確解析JSON
alert(eval('({"foo":"bar"})'));//return JSON object,correct

相關(guān)文章

  • JSONP 跨域共享信息

    JSONP 跨域共享信息

    JSONP(JSON with Padding)是資料格式 JSON 的一種“使用模式”,可以讓網(wǎng)頁(yè)從別的網(wǎng)域要資料。另一個(gè)解決這個(gè)問(wèn)題的新方法是跨來(lái)源資源共享
    2012-08-08
  • jQuery 遍歷json數(shù)組的實(shí)現(xiàn)代碼

    jQuery 遍歷json數(shù)組的實(shí)現(xiàn)代碼

    看到網(wǎng)上有很多朋友問(wèn)遍歷json數(shù)組的代碼,腳本之家特為大家整理了一些,需要的朋友可以看下。
    2010-03-03
  • JSONP之我見(jiàn)

    JSONP之我見(jiàn)

    本文主要向大家介紹了個(gè)人對(duì)于jsonp的理解,jsonp的概念,跨域問(wèn)題,以及jsonp與XMLHttpRequest的區(qū)別,由于本人也是javascript的初學(xué)者,難免會(huì)有些不當(dāng)之處,還請(qǐng)指正,謝謝。
    2015-03-03
  • 什么是json和jsonp,jQuery json實(shí)例詳詳細(xì)說(shuō)明

    什么是json和jsonp,jQuery json實(shí)例詳詳細(xì)說(shuō)明

    JSON能夠以非常簡(jiǎn)單的方式來(lái)描述數(shù)據(jù)結(jié)構(gòu),XML能做的它都能做,因此在跨平臺(tái)方面兩者完全不分伯仲.其實(shí)網(wǎng)上關(guān)于JSONP的講解有很多,但卻千篇一律,用自己的方式來(lái)闡釋一下這個(gè)問(wèn)題,看看是否有幫助
    2012-12-12
  • 詳解Java中String JSONObject JSONArray List<實(shí)體類>轉(zhuǎn)換

    詳解Java中String JSONObject JSONArray List<實(shí)體類>轉(zhuǎn)換

    這篇文章主要介紹了詳解String JSONObject JSONArray List<實(shí)體類>轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • js解析與序列化json數(shù)據(jù)(三)json的解析探討

    js解析與序列化json數(shù)據(jù)(三)json的解析探討

    這一節(jié)我們主要討論json的解析,感興趣的朋友可以了解下,JSON.parse()方法也可以接收另一個(gè)參數(shù),該參數(shù)是一個(gè)函數(shù),將早每個(gè)鍵值對(duì)上調(diào)用,好了,話不多說(shuō),希望本文對(duì)你有所幫助
    2013-02-02
  • 簡(jiǎn)明json介紹

    簡(jiǎn)明json介紹

    不要認(rèn)為JSON是種新的應(yīng)用 ,其實(shí)JSON就是javascript支持的一種對(duì)象直接量。
    2008-09-09
  • 半個(gè)小時(shí)學(xué)json(json傳遞示例)

    半個(gè)小時(shí)學(xué)json(json傳遞示例)

    這篇文章主要介紹了半個(gè)小時(shí)學(xué)json(json傳遞示例),主要包括一維數(shù)組與二維數(shù)組,需要的朋友可以參考下
    2016-12-12
  • JSON相關(guān)知識(shí)匯總

    JSON相關(guān)知識(shí)匯總

    本文給大家匯總了一下關(guān)于json的相關(guān)的知識(shí)點(diǎn),從基礎(chǔ)到示例,非常全面,有需要的小伙伴可以參考下。
    2015-07-07
  • Javascript 通過(guò)json自動(dòng)生成Dom的代碼

    Javascript 通過(guò)json自動(dòng)生成Dom的代碼

    主要還是通過(guò)遞歸和迭代來(lái)遍歷json成員生成html元素 ,比較好的是num能制定循環(huán)次數(shù)可以少寫(xiě)很多代碼.具體應(yīng)用看場(chǎng)景了
    2010-04-04

最新評(píng)論

和顺县| 崇义县| 桑植县| 三门县| 花莲县| 旌德县| 随州市| 莎车县| 永嘉县| 连平县| 大姚县| 桦南县| 固镇县| 津市市| 红原县| 都兰县| 元江| 瑞昌市| 蒙阴县| 镇巴县| 方山县| 大安市| 桐庐县| 明水县| 江城| 湟源县| 普安县| 泸定县| 泸州市| 固始县| 庐江县| 宁德市| 鞍山市| 南和县| 香港| 麻阳| 房产| 错那县| 安仁县| 竹北市| 开远市|