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

Json對(duì)象和字符串互相轉(zhuǎn)換json數(shù)據(jù)拼接和JSON使用方式詳細(xì)介紹(小結(jié))

 更新時(shí)間:2016年10月25日 11:07:47   作者:danran68  
JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式.這篇文章主要介紹了Json對(duì)象和字符串互相轉(zhuǎn)換json數(shù)據(jù)拼接和JSON使用方式詳細(xì)介紹(小結(jié))的相關(guān)資料,需要的朋友可以參考下

JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于ECMAScript的一個(gè)子集。 JSON采用完全獨(dú)立于語(yǔ)言的文本格式,但是也使用了類似于C語(yǔ)言家族的習(xí)慣(包括C、C++、C#、Java、JavaScript、Perl、Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言。 易于人閱讀和編寫(xiě),同時(shí)也易于機(jī)器解析和生成(一般用于提升網(wǎng)絡(luò)傳輸速率)。

一、JSON字符串轉(zhuǎn)換為JSON對(duì)象: eval() 和 JSON.parse

eg- json字符串:

var data = '{ "name": "dran", "sex": "man" }';
var obj = eval("("+data+")"); 或者
var obj = JSON.parse(data);

然后,就可以這樣讀?。?alert(obj.name + obj.sex);

提示:為什么要 eval這里要添加 ("("+data+")");呢?

  原因在于:eval本身的問(wèn)題。 由于json是以”{}”的方式來(lái)開(kāi)始以及結(jié)束的,在JS中,它會(huì)被當(dāng)成一個(gè)語(yǔ)句塊來(lái)處理,所以必須強(qiáng)制性的將它轉(zhuǎn)換成一種表達(dá)式。

加上圓括號(hào)的目的是迫使eval函數(shù)在處理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)識(shí)別為JavaScript代碼塊的開(kāi)始和結(jié)束標(biāo)記,那么{}將會(huì)被認(rèn)為是執(zhí)行了一句空語(yǔ)句

二、JSON對(duì)象轉(zhuǎn)換為JSON字符串 : obj.toJSONString()或者全局方法JSON.stringify(obj) (obj代表json對(duì)象)

eg-json對(duì)象: var obj = { "name": "dran", "sex": "man" };
var jstring = JSON.stringify(obj) ;// 建議用這個(gè)
var jstring = obj.toJSONString(); //toJSONString()不是js原生的方法,需要引入相應(yīng)的庫(kù)或自己定義后才能用 (不習(xí)慣用)

然后,就可以這樣讀?。?alert(jstring);

注意:

目前,F(xiàn)irefox、Opera、IE8以上版本也提供了本地JSON支持。其中,JSON解釋器提供的函數(shù)有:JSON.parse、JSON.stringify。   對(duì)于那些并不提供本地JSON支持的瀏覽器可以引入腳本json2.js,來(lái)實(shí)現(xiàn)JSON轉(zhuǎn)換功能。json2.js腳本可到https://github.com/douglascrockford/JSON-js/blob/master/json2.js頁(yè)面下載

在AJAX實(shí)現(xiàn)前后臺(tái)數(shù)據(jù)交互的時(shí)候,通常使用JSON的數(shù)據(jù)格式,對(duì)于JSON來(lái)說(shuō),有嚴(yán)格的代碼規(guī)范,一旦格式出問(wèn)題,就無(wú)法顯示出相應(yīng)效果,同時(shí)還不在控制臺(tái)報(bào)錯(cuò)

補(bǔ)充: ajax讀取json數(shù)據(jù)拼接顯示:

json文件:

{
"first":[
{"name":"張三","sex":"男","like":["吃飯","睡覺(jué)","打豆豆"]},
{"name":"李四","sex":"男"},
{"name":"王武","sex":"男"},
{"name":"李梅","sex":"女"},
],
"second":[
{"name":"上海大學(xué)","area":"上海"},
{"name":"武漢大學(xué)","area":"武漢"},
{"name":"北京大學(xué)","area":"北京"},
{"name":"山東大學(xué)","area":"山東"},
]
}

html和ajax代碼

1、用for循環(huán)

$.ajax({
url : "ceshi.json",
type : "POST", 
dataType :"text", //瀏覽器把json文件當(dāng)作文本文件 不然讀取不出來(lái) 權(quán)宜之策就改成了text, 因?yàn)闇y(cè)試, json文件格式正確書(shū)寫(xiě)
success: function(data) { 
var dataJson = eval("("+data+")"); // 將json字符串?dāng)?shù)據(jù)解析成對(duì)象
var arr1 = dataJson.first;
var arr2 = dataJson.second;
//一欄顯示 用for循環(huán)完成數(shù)組解析
for(var i = 0; i<arr1.length; i++){ 
for(var j = 0; j<arr2.length; j++){
var str='<div style="display:block">'+
'<div>姓名:'+arr1[i].name+' 性別:'+arr1[i].sex+'</div>'+
'<div>學(xué)校:'+arr2[j].name+'</div>'+
'<div>地點(diǎn):'+arr2[j].area+'</div>'+
//'<div>喜好:'+arr1[i].like+'</div>'+ //全顯示
//'<div>喜好:'+arr1[i].like[1]+'</div>'+ //單獨(dú)設(shè)置
//'<div>喜好:'+arr1[i].like[0]+'</div>'+
'</div>';
}
$(".result").append(str);
}
//分層顯示
//var str = "";
// var str1 = "";
// if (arr1 != null) {
// for (var i = 0; i < arr1.length; i++) { //這里面都是創(chuàng)建并賦值
// str += "<span>" + arr1[i].name + "</span><span>" + arr1[i].sex + "</span><br>";
// }
// $(".result").html(str);
// }
// if (arr2 != null) {
// for (var j = 0; j < arr2.length; j++) {
// str1 += "<span>" + arr2[j].name + "</span><span>" + arr2[j].area+ "</span><br>";
// }
// $(".result2").html(str1);
// }
},
error:function(data){
alert("error"); 
}
})
<div class="result">frist:</div>
<div class="result2">second:</div>
for

2、 each循環(huán) 使用$.each方法遍歷返回的數(shù)據(jù)date,插入到class為 .result中

JSON:

[
{"name":"張三","sex":"男","like":["吃飯","睡覺(jué)","打豆豆"]},
{"name":"李四","sex":"男"},
{"name":"王武","sex":"男"},
{"name":"李梅","sex":"女"},
]
$.ajax({
url : "ceshi.json",
type : "POST", 
dataType :"text", //瀏覽器把json文件當(dāng)作文本文件 不然讀取不出來(lái) 權(quán)宜之策就改成了text, 因?yàn)闇y(cè)試, json文件格式正確書(shū)寫(xiě)
success: function(data) { 
var dataJson = eval("("+data+")"); // 將json字符串?dāng)?shù)據(jù)解析成對(duì)象
//each循環(huán) 使用$.each方法遍歷返回的數(shù)據(jù)date,插入到class為 .result中 i 表示索引 item 信息值 對(duì)象 
$.each(dataJson,function(i,item){
var str='<div style="display:block">'+
'<div>姓名:'+item.name+' 性別:'+item.sex+'</div>'+
'<div>like:'+item.like+'</div>'+
'</div>'; 
$(".result").append(str); 
})
},
error:function(data){
alert("error"); 
}
})
<div class="result"></div>
each

PS:對(duì)于一般的js生成json對(duì)象,只需要將$.each()方法替換為for語(yǔ)句即可,其他不變

JSON 數(shù)據(jù)使用方法:

//json對(duì)象:
var jsonObj= {
"name":" 張三",
"sex":"男",
"age":26,
};
使用: jsonObj.name= "張三"
jsonObj.age= "26"
//json數(shù)組: []下標(biāo) 從 0 開(kāi)始
var jsonArr =[
{"name":"張三","sex":"男","like":["吃飯","睡覺(jué)","打豆豆"]},
{"name":"李四","sex":"男"},
{"name":"王武","sex":"男"},
]
使用: jsonArr[0].sex="男"
jsonArr[1].name="李四"
//多個(gè)數(shù)組: []下標(biāo) 從 0 開(kāi)始
var options = {
"city" :[
{ 
"name":"上海",
"area":"普陀區(qū)",
"option":"真北路",
"correct":"1"
},
{
"name":"石家莊",
"area":"河北",
"option":"在北方",
"correct":"2"
}],
"world":[
{
"title":"美國(guó)",
"content":"好萊塢大片 科幻"
},
{
"title":"中國(guó)",
"content":"愛(ài)我中華,雖遠(yuǎn)必誅"
}
]
};
options.city[0].area="普陀區(qū)"
options.world[1].content="愛(ài)我中華,雖遠(yuǎn)必誅

以上所述是小編給大家介紹的Json對(duì)象和字符串互相轉(zhuǎn)換json數(shù)據(jù)拼接和JSON使用方式詳細(xì)介紹(小結(jié)),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 解決bootstrap模態(tài)框數(shù)據(jù)緩存的問(wèn)題方法

    解決bootstrap模態(tài)框數(shù)據(jù)緩存的問(wèn)題方法

    今天小編就為大家分享一篇解決bootstrap模態(tài)框數(shù)據(jù)緩存的問(wèn)題方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • javascript 極速 隱藏/顯示萬(wàn)行表格列只需 60毫秒

    javascript 極速 隱藏/顯示萬(wàn)行表格列只需 60毫秒

    隱藏表格列 這種方式的效率極低。例如,隱藏一個(gè)千行表格的某列,在我的筆記本(P4 M 1.4G,768M內(nèi)存)上執(zhí)行需要約 4000毫秒的時(shí)間,令人無(wú)法忍受。
    2009-03-03
  • 簡(jiǎn)單了解JavaScript中的new?Function

    簡(jiǎn)單了解JavaScript中的new?Function

    這篇文章主要介紹了簡(jiǎn)單了解JavaScript中的new?Function,文章通過(guò)圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • 淺談Javascript中的12種DOM節(jié)點(diǎn)類型

    淺談Javascript中的12種DOM節(jié)點(diǎn)類型

    DOM是javascript操作網(wǎng)頁(yè)的接口,全稱為文檔對(duì)象模型(Document Object Model)。本文將主要說(shuō)明DOM節(jié)點(diǎn)類型,有需要的可以參考借鑒。
    2016-08-08
  • 微信小程序中視頻的顯示與隱藏功能

    微信小程序中視頻的顯示與隱藏功能

    這篇文章主要介紹了微信小程序中視頻的顯示與隱藏,思路大概是定義一個(gè)標(biāo)記變量,控制視頻的播放與暫停,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10
  • javascript合并表格單元格實(shí)例代碼

    javascript合并表格單元格實(shí)例代碼

    這篇文章主要介紹了javascript合并表格單元格實(shí)例代碼,在某些應(yīng)用中需要?jiǎng)討B(tài)的合并單元格,感興趣的朋友可以參考一下
    2016-01-01
  • JavaScript使用ActiveXObject訪問(wèn)Access和SQL Server數(shù)據(jù)庫(kù)

    JavaScript使用ActiveXObject訪問(wèn)Access和SQL Server數(shù)據(jù)庫(kù)

    這篇文章主要介紹了JavaScript使用ActiveXObject訪問(wèn)Access和SQL Server數(shù)據(jù)庫(kù),本文分別給出相應(yīng)操作代碼,需要的朋友可以參考下
    2015-04-04
  • JS 獲取鼠標(biāo)左右鍵的鍵值方法

    JS 獲取鼠標(biāo)左右鍵的鍵值方法

    這篇文章主要介紹了JS 獲取鼠標(biāo)左右鍵的鍵值方法,很簡(jiǎn)單,但很實(shí)用,特別是在做與用戶交互相關(guān)的東西
    2014-10-10
  • electron打包dist為可執(zhí)行程序的實(shí)現(xiàn)步驟

    electron打包dist為可執(zhí)行程序的實(shí)現(xiàn)步驟

    這篇文章主要介紹了electron打包dist為可執(zhí)行程序的實(shí)現(xiàn)步驟,文中通過(guò)代碼示例和圖文講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-04-04
  • Bootstrap提示框效果的實(shí)例代碼

    Bootstrap提示框效果的實(shí)例代碼

    本篇文章主要介紹了Bootstrap提示框效果的實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07

最新評(píng)論

简阳市| 铁岭市| 宁都县| 七台河市| 同仁县| 宣化县| 海淀区| 勃利县| 合肥市| 桦川县| 沁水县| 阿合奇县| 乌海市| 定边县| 水富县| 佛冈县| 张家港市| 开平市| 宁城县| 晋宁县| 漳浦县| 东丰县| 河池市| 莒南县| 阿拉善盟| 五家渠市| 洛南县| 青阳县| 房产| 阳山县| 南涧| 英德市| 隆德县| 鹤岗市| 固始县| 商洛市| 彩票| 铁力市| 上饶县| 留坝县| 胶南市|