麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

Json對象和字符串互相轉換json數據拼接和JSON使用方式詳細介紹(小結)

2019-11-20 08:40:07
字體:
來源:轉載
供稿:網友

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

一、JSON字符串轉換為JSON對象: 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本身的問題。 由于json是以”{}”的方式來開始以及結束的,在JS中,它會被當成一個語句塊來處理,所以必須強制性的將它轉換成一種表達式。

加上圓括號的目的是迫使eval函數在處理JavaScript代碼的時候強制將括號內的表達式(expression)轉化為對象,而不是作為語句(statement)來執行。舉一個例子,例如對象字面量{},如若不加外層的括號,那么eval會將大括號識別為JavaScript代碼塊的開始和結束標記,那么{}將會被認為是執行了一句空語句

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

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

然后,就可以這樣讀取: alert(jstring);

注意:

目前,Firefox、Opera、IE8以上版本也提供了本地JSON支持。其中,JSON解釋器提供的函數有:JSON.parse、JSON.stringify。   對于那些并不提供本地JSON支持的瀏覽器可以引入腳本json2.js,來實現JSON轉換功能。json2.js腳本可到https://github.com/douglascrockford/JSON-js/blob/master/json2.js頁面下載

在AJAX實現前后臺數據交互的時候,通常使用JSON的數據格式,對于JSON來說,有嚴格的代碼規范,一旦格式出問題,就無法顯示出相應效果,同時還不在控制臺報錯

補充: ajax讀取json數據拼接顯示:

json文件:

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

html和ajax代碼

1、用for循環

$.ajax({url : "ceshi.json",type : "POST", dataType :"text", //瀏覽器把json文件當作文本文件 不然讀取不出來 權宜之策就改成了text, 因為測試, json文件格式正確書寫success: function(data) { var dataJson = eval("("+data+")"); // 將json字符串數據解析成對象var arr1 = dataJson.first;var arr2 = dataJson.second;//一欄顯示 用for循環完成數組解析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>學校:'+arr2[j].name+'</div>'+'<div>地點:'+arr2[j].area+'</div>'+//'<div>喜好:'+arr1[i].like+'</div>'+ //全顯示//'<div>喜好:'+arr1[i].like[1]+'</div>'+ //單獨設置//'<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++) { //這里面都是創建并賦值// 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循環 使用$.each方法遍歷返回的數據date,插入到class為 .result中

JSON:

[{"name":"張三","sex":"男","like":["吃飯","睡覺","打豆豆"]},{"name":"李四","sex":"男"},{"name":"王武","sex":"男"},{"name":"李梅","sex":"女"},]$.ajax({url : "ceshi.json",type : "POST", dataType :"text", //瀏覽器把json文件當作文本文件 不然讀取不出來 權宜之策就改成了text, 因為測試, json文件格式正確書寫success: function(data) { var dataJson = eval("("+data+")"); // 將json字符串數據解析成對象//each循環 使用$.each方法遍歷返回的數據date,插入到class為 .result中 i 表示索引 item 信息值 對象 $.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:對于一般的js生成json對象,只需要將$.each()方法替換為for語句即可,其他不變

JSON 數據使用方法:

//json對象:var jsonObj= {"name":" 張三","sex":"男","age":26,};使用: jsonObj.name= "張三"jsonObj.age= "26"http://json數組: []下標 從 0 開始var jsonArr =[{"name":"張三","sex":"男","like":["吃飯","睡覺","打豆豆"]},{"name":"李四","sex":"男"},{"name":"王武","sex":"男"},]使用: jsonArr[0].sex="男"jsonArr[1].name="李四"http://多個數組: []下標 從 0 開始var options = {"city" :[{ "name":"上海","area":"普陀區","option":"真北路","correct":"1"},{"name":"石家莊","area":"河北","option":"在北方","correct":"2"}],"world":[{"title":"美國","content":"好萊塢大片 科幻"},{"title":"中國","content":"愛我中華,雖遠必誅"}]};options.city[0].area="普陀區"options.world[1].content="愛我中華,雖遠必誅

以上所述是小編給大家介紹的Json對象和字符串互相轉換json數據拼接和JSON使用方式詳細介紹(小結),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成品片a免费直接观看 | 亚洲成人福利电影 | 国产精品久久久久久久模特 | 亚洲第五色综合网 | 一区二区三区视频播放 | 国产流白浆高潮在线观看 | 国产亚洲精品久久午夜玫瑰园 | 久久福利小视频 | 一级做a爰性色毛片免费1 | 大胆在线日本aⅴ免费视频 美国黄色毛片女人性生活片 | 桥本有菜免费av一区二区三区 | av大全在线免费观看 | av在线看网站 | 黄网站在线观 | 国产精品久久久久永久免费 | 欧美成人精品一区二区三区 | 国产资源在线播放 | 成人在线免费观看网址 | 国产精品久久久久久久四虎电影 | 国产一级在线观看视频 | 久草在线观看福利视频 | 欧美一级黄色录相 | 国产一区二区三区四区波多野结衣 | 91成人天堂久久成人 | www.精品在线| 欧美一级毛片大片免费播放 | 亚洲电影在线播放 | 91精品国产91久久久久久不卞 | 国产精品午夜未成人免费观看 | 看免费毛片| 激情网站免费观看 | 黄色网页在线观看 | 最新精品在线 | 91精品国产综合久久婷婷香 | 激情宗合网| 中文字幕一区在线观看视频 | 亚洲精品xxx | 久久91亚洲精品久久91综合 | 亚洲精品 欧美 | a一级黄 | 天天鲁在线视频免费观看 |