欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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)來執(zhí)行。舉一個例子,例如對象字面量{},如若不加外層的括號,那么eval會將大括號識別為JavaScript代碼塊的開始和結束標記,那么{}將會被認為是執(zhí)行了一句空語句

二、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來說,有嚴格的代碼規(guī)范,一旦格式出問題,就無法顯示出相應效果,同時還不在控制臺報錯

補充: 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循環(huán)

$.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循環(huán)完成數組解析
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++) { //這里面都是創(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方法遍歷返回的數據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循環(huán) 使用$.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"
//json數組: []下標 從 0 開始
var jsonArr =[
{"name":"張三","sex":"男","like":["吃飯","睡覺","打豆豆"]},
{"name":"李四","sex":"男"},
{"name":"王武","sex":"男"},
]
使用: jsonArr[0].sex="男"
jsonArr[1].name="李四"
//多個數組: []下標 從 0 開始
var options = {
"city" :[
{ 
"name":"上海",
"area":"普陀區(qū)",
"option":"真北路",
"correct":"1"
},
{
"name":"石家莊",
"area":"河北",
"option":"在北方",
"correct":"2"
}],
"world":[
{
"title":"美國",
"content":"好萊塢大片 科幻"
},
{
"title":"中國",
"content":"愛我中華,雖遠必誅"
}
]
};
options.city[0].area="普陀區(qū)"
options.world[1].content="愛我中華,雖遠必誅

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

相關文章

  • Bootstrap布局方式詳解

    Bootstrap布局方式詳解

    這篇文章主要為大家詳細介紹了Bootstrap布局方式,分析了Bootstrap網格系統(tǒng)的各種特性,感興趣的小伙伴們可以參考一下
    2016-05-05
  • 淺析JavaScript聲明變量

    淺析JavaScript聲明變量

    JavaScript的變量聲明語句無論出現在何處,都會先于其他代碼首先被執(zhí)行,本文給大家介紹javascript聲明變量相關知識,感興趣的朋友一起學習吧
    2015-12-12
  • JavaScript 彈出窗體點擊按鈕返回選擇數據的實現

    JavaScript 彈出窗體點擊按鈕返回選擇數據的實現

    這兩天一直想實現這個,以前做做個Demo,但是不知道跑哪去了。于是今天在網上找了些資料再自己動手搞定。廢話不多說。直接進入主題啦。
    2010-04-04
  • Javascript如何實現雙指控制圖片功能

    Javascript如何實現雙指控制圖片功能

    這篇文章主要介紹了Javascript如何實現雙指控制圖片功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • JavaScript面向對象編程實現模擬

    JavaScript面向對象編程實現模擬

    面向對象編程(Object Oriented Programming)將現實世界中的復雜關系抽象成一個個對象,通過對象之間的分工合作對現實世界進行模擬
    2022-10-10
  • JavaScript實現網頁圖片等比例縮放實現代碼及調用方式

    JavaScript實現網頁圖片等比例縮放實現代碼及調用方式

    為了保證圖片統(tǒng)一大小,直接設置圖片大小又會導致圖片拉伸,造成圖片模糊,接下來將介紹的代碼可以在圖片加載完成后自動按比例調整圖片大小,感興趣的你可以參考下
    2013-02-02
  • JavaScript實現好看的跟隨彩色氣泡效果

    JavaScript實現好看的跟隨彩色氣泡效果

    這篇文章主要為大家詳細介紹了JavaScript實現好看的跟隨彩色氣泡效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • javascript實現跟隨鼠標移動的圖片

    javascript實現跟隨鼠標移動的圖片

    這篇文章主要為大家詳細介紹了javascript實現跟隨鼠標移動的圖片,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • es6新增對象的實用方法總結

    es6新增對象的實用方法總結

    在JavaScript中,幾乎每一個值都是某種特定類型的對象,于是ES6也著重提升了對象的功能性,下面這篇文章主要給大家介紹了關于es6新增對象實用方法的相關資料,需要的朋友可以參考下
    2022-05-05
  • js控制不同的時間段顯示不同的css樣式的實例代碼

    js控制不同的時間段顯示不同的css樣式的實例代碼

    這篇文章介紹了js控制不同的時間段顯示不同的css樣式的實例代碼,有需要的朋友可以參考一下
    2013-11-11

最新評論