詳解js中Json的語法與格式
JSON 文本格式在語法上與創(chuàng)建 JavaScript 對象的代碼相同。
由于這種相似性,無需解析器,JavaScript 程序能夠使用內(nèi)建的 eval() 函數(shù),用 JSON 數(shù)據(jù)來生成原生的 JavaScript 對象。
JSON語法規(guī)則:
數(shù)據(jù)在 名稱/值 對仲
數(shù)據(jù)由逗號分隔
花括號保存對象
方括號保存數(shù)組
JSON 名稱/值 對介紹
"name":"張飛", "age":23
Json的值可以是:
數(shù)字(整數(shù)或浮點(diǎn)數(shù))
字符串(要包括在雙引號中)
邏輯值(true或false)
數(shù)組(在方括號中)
對象(在花括號中)
Json轉(zhuǎn)javascript對象的方法為:
eval("(" + str + ")");
代碼示例:
<html> <head> <title>Json測試</title> <script src="/Scripts/jquery-1.7.2.min.js" type="text/javascript"></script> <script type="text/javascript"> //基本上,Json返回的要么是對象,要么是數(shù)組,如果單純返回一個(gè)字符串,那么就沒有必要用Json了,因此 //Json基本就下面這些可,不過要注意雙引號 var str0 = "{employees:'測試'}"; var obj0 = eval("(" + str0 + ")"); alert(obj0.employees); //輸出測試 var str = "{name:'張三',Age:21}"; var obj = eval("(" + str + ")"); document.write(obj.name + obj.Age); //輸出 張三21 alert(obj.name); //別看下面那段Json長,其實(shí)是一個(gè)對象,屬性employees的值是一個(gè)對象數(shù)組。和上面的相比,只是name:張三 中的"張三"字符串 變成了對象數(shù)組而已 var str2 = '{ "employees" : [' + '{ "firstName":"Bill" , "lastName":"Gates" },' + '{ "firstName":"George" , "lastName":"Bush" },' + '{ "firstName":"Thomas" , "lastName":"Carter" } ]}'; var obj2 = eval("(" + str2 + ")"); alert(obj2.employees[0].firstName); //彈出 Bill var str3 = "[1,2,3,4,5,6]"; //json 數(shù)組 var obj3 = eval("(" + str3 + ")"); //輸出 2 alert(obj3[1]); </script> </head> <body> <div id="div1"> </div> </body> </html>
Json與JavaScript對象轉(zhuǎn)換
JSON轉(zhuǎn)javascript對象
//Json轉(zhuǎn)對象1 function JsonToObject(str) { return eval("(" + str + ")"); } //Json轉(zhuǎn)對象2 function strToJson(str){ var json = (new Function("return " + str))(); return json; } //Json轉(zhuǎn)對象3 jQuery工具函數(shù) $.parseJSON()
javascript對象轉(zhuǎn)JSON
//javascript對象轉(zhuǎn)Json function ObjectToJson(o) { var arr = []; var fmt = function(s) { if (typeof s == 'object' && s != null) return json2str(s); return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s; } for (var i in o) arr.push("'" + i + "':" + fmt(o[i])); return '{' + arr.join(',') + '}'; }
以上就是本文的全部內(nèi)容,希望對大家有所幫助,謝謝對腳本之家的支持!
相關(guān)文章
微信小程序中使用ECharts 異步加載數(shù)據(jù)的方法
這篇文章主要介紹了微信小程序中使用ECharts 異步加載數(shù)據(jù)的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06Web開發(fā)中客戶端的跳轉(zhuǎn)與服務(wù)器端的跳轉(zhuǎn)的區(qū)別
這篇文章主要介紹了Web開發(fā)中客戶端的跳轉(zhuǎn)與服務(wù)器端的跳轉(zhuǎn)的區(qū)別 ,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03Javascript String對象擴(kuò)展HTML編碼和解碼的方法
Javascript String對象擴(kuò)展HTML編碼和解碼的代碼2009-06-06頁面回到頂部的三種實(shí)現(xiàn)(錨標(biāo)記,js)
本文不再介紹,大家根據(jù)自己需要選擇其中的一種即可,總之簡約最美的,能減少代碼就減少代碼,能不調(diào)用的就別調(diào)用,要不是天緣博客的文章都是牛長也不會(huì)添加這個(gè)功能2012-10-10簡單通過settimeout看javascript的運(yùn)行機(jī)制
這篇文章主要給大家介紹了關(guān)于如何通過settimeout看javascript的運(yùn)行機(jī)制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用javascript具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05JavaScript實(shí)現(xiàn)獲取最近7天的日期的方法詳解
這篇文章主要想和大家分享一些JavaScript開發(fā)中會(huì)用到的小技巧,本文主要介紹了js獲取最近7天的日期,判斷當(dāng)前日期時(shí)間大于指定日期時(shí)間等內(nèi)容,需要的可以參考一下2023-04-04javascript仿163網(wǎng)盤無刷新文件上傳系統(tǒng)
這個(gè)仿163網(wǎng)盤無刷新文件上傳系統(tǒng),并沒有用使用.net的控件,完全的手工制作。2008-10-10JavaScript中的稀疏數(shù)組與密集數(shù)組[譯]
一般來說,JavaScript中的數(shù)組是稀疏的,也就是說,數(shù)組中的元素之間可以有空隙,因?yàn)橐粋€(gè)數(shù)組其實(shí)就是一個(gè)鍵值映射.本文解釋了如何創(chuàng)建稀疏數(shù)組和不稀疏的數(shù)組2012-09-09