json2.js的初步學(xué)習(xí)與了解
更新時(shí)間:2011年10月06日 15:06:20 作者:
json2.js的初步學(xué)習(xí)與了解,想要學(xué)習(xí)json的朋友可以參考下。
json2.js的初步學(xué)習(xí)與了解
1.)該js的下載地址是:http://www.json.org/json2.js
2.)在頁(yè)面中引用該腳本:<script type="text/javascript" src="js/json2.js"></script>
3.)示例演示一:
//直接聲明json數(shù)據(jù)結(jié)構(gòu)
var myJSONObject = {"bindings": [
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
]
};
這個(gè)例子中,創(chuàng)建了一個(gè)對(duì)象,它只包含一個(gè)成員“bindings”。“bindings”是一個(gè)包含了3個(gè)對(duì)象的數(shù)組,而這每個(gè)對(duì)象都有"ircEvent"、"method"和"regex"3個(gè)成員。
這些成員可以用“.”或subscript 操作得到。
如:myJSONObject.bindings[0].method // "newURI"
myJSONObject.bindings[1].deleteURI // "newURI"
//聲明字符串,可對(duì)比一下json文本與我們正常文本的區(qū)別
var normalstring='[{persons:[{name:"jordan",sex:"m",age:"40"}, {name:"bryant",sex:"m",age:"28"}, {name:"McGrady",sex:"m",age:"27"} ]}]';
var jsontext='[{"persons":[{"name":"jordan","sex":"m","age":"40"}, {"name":"bryant","sex":"m","age":"28"}, {"name":"McGrady","sex":"m","age":"27"} ]}]';
我們可以使用eval()函數(shù)調(diào)用JavaScript的編譯器把JSON文本轉(zhuǎn)變成對(duì)象。因?yàn)镴SON是JavaScript的一個(gè)確切的子集,編譯器可以正確地解析JSON文本,然后生成一個(gè)對(duì)象結(jié)構(gòu)。
//調(diào)用eval函數(shù)轉(zhuǎn)換為json對(duì)象,
var myE = eval(normalstring);
//將json對(duì)象轉(zhuǎn)換為字符串
var text = JSON.stringify(myE);
//對(duì)比轉(zhuǎn)換后的json文本與聲明的文本區(qū)別
document.writeln('轉(zhuǎn)換后的json文本:'+text+'<br><br>聲明的json格式文本 '+jsontext+'<br><br>聲明的普通格式文本 '+normalstring+'<br><br>');
結(jié)果如下:
轉(zhuǎn)換后的json文本:[{"persons":[{"name":"jordan","sex":"m","age":"40"},{"name":"bryant","sex":"m","age":"28"},{"name":"McGrady","sex":"m","age":"27"}]}]
聲明的json格式文本 [{"persons":[{"name":"jordan","sex":"m","age":"40"},{"name":"bryant","sex":"m","age":"28"},{"name":"McGrady","sex":"m","age":"27"}]}]
聲明的普通格式文本 [{persons:[{name:"jordan",sex:"m",age:"40"}, {name:"bryant",sex:"m",age:"28"}, {name:"McGrady",sex:"m",age:"27"} ]}]
小結(jié):轉(zhuǎn)換后的json文本和聲明的json格式文本內(nèi)容是相同的。
//當(dāng)安全比較重要的時(shí)候使用JSON解析就好一些。JSON解析只會(huì)識(shí)別JSON文本并且它更安全,下面調(diào)用json的parse函數(shù)對(duì)文本數(shù)據(jù)轉(zhuǎn)換生成json數(shù)據(jù)結(jié)構(gòu)
var myData = JSON.parse(jsontext);
完整的文件如下(區(qū)別:myJSONObject,jsontext,normalstring的不同):
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript" src="js/json2.js"></script>
</head>
<body>
<script>
var normalstring='[{persons:[{name:"jordan",sex:"m",age:"40"}, {name:"bryant",sex:"m",age:"28"}, {name:"McGrady",sex:"m",age:"27"} ]}]';
var jsontext='[{"persons":[{"name":"jordan","sex":"m","age":"40"}, {"name":"bryant","sex":"m","age":"28"}, {"name":"McGrady","sex":"m","age":"27"} ]}]';
var myJSONObject = {"bindings": [
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
]
};
//調(diào)用eval函數(shù)轉(zhuǎn)換為json對(duì)象,
var myE = eval(normalstring);
//將json對(duì)象轉(zhuǎn)換為字符串
var text = JSON.stringify(myE);
//對(duì)比轉(zhuǎn)換后的json文本與聲明的文本區(qū)別
document.writeln('轉(zhuǎn)換后的json文本:'+text+'<br><br>聲明的json格式文本 '+jsontext+'<br><br>聲明的普通格式文本 '+normalstring+'<br><br>');
//JSON解析
var myData = JSON.parse(jsontext);
</script>
</body>
</html>
4.)示例演示二:
//下面是對(duì)json對(duì)象的增刪查改操作
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript" src="js/json2.js"></script>
</head>
<body>
<script>
//聲明json對(duì)象
var jsonObj2={persons:[
{name:"jordan",sex:"m",age:"40"},
{name:"bryant",sex:"m",age:"28"},
{name:"McGrady",sex:"m",age:"27"}
]};
var persons=jsonObj2.persons;
var str="";
var person={name:"yaoMing",sex:"m",age:"26"};
//以下為json對(duì)象的操作,去掉注釋可以查看操作結(jié)果
jsonObj2.persons.push(person);//數(shù)組最后加一條記錄
jsonObj2.persons.pop();//刪除最后一項(xiàng)
jsonObj2.persons.shift();//刪除第一項(xiàng)
jsonObj2.persons.unshift(person);//數(shù)組最前面加一條記錄 只要適合Javascript的方法都是可以用在JSON對(duì)象的數(shù)組中的!所以還有另外的方法splice( )進(jìn)行crud操作! //刪除
jsonObj2.persons.splice(0,2);//開始位置,刪除個(gè)數(shù)
//替換不刪除
var self={name:"tom",sex:"m",age:"24"};
var brother={name:"Mike",sex:"m",age:"29"};
jsonObj2.persons.splice(1,0,self,brother,self);//開始位置,刪除個(gè)數(shù),插入對(duì)象
//替換并刪除
jsonObj2.persons.splice(0,1,self,brother);//開始位置,刪除個(gè)數(shù),插入對(duì)象
for(var i=0;i<persons.length;i++){
var cur_person=persons[i];
str+=cur_person.name+"'sex is "+cur_person.sex+" and age is "+cur_person.age+"<br><br>";
}
document.writeln(str);
//轉(zhuǎn)換為json文本
var myjsonobj = JSON.stringify(jsonObj2);
document.writeln(myjsonobj);
document.writeln(persons.length);
</script>
</body>
</html>
1.)該js的下載地址是:http://www.json.org/json2.js
2.)在頁(yè)面中引用該腳本:<script type="text/javascript" src="js/json2.js"></script>
3.)示例演示一:
復(fù)制代碼 代碼如下:
//直接聲明json數(shù)據(jù)結(jié)構(gòu)
var myJSONObject = {"bindings": [
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
]
};
這個(gè)例子中,創(chuàng)建了一個(gè)對(duì)象,它只包含一個(gè)成員“bindings”。“bindings”是一個(gè)包含了3個(gè)對(duì)象的數(shù)組,而這每個(gè)對(duì)象都有"ircEvent"、"method"和"regex"3個(gè)成員。
這些成員可以用“.”或subscript 操作得到。
如:myJSONObject.bindings[0].method // "newURI"
myJSONObject.bindings[1].deleteURI // "newURI"
//聲明字符串,可對(duì)比一下json文本與我們正常文本的區(qū)別
var normalstring='[{persons:[{name:"jordan",sex:"m",age:"40"}, {name:"bryant",sex:"m",age:"28"}, {name:"McGrady",sex:"m",age:"27"} ]}]';
var jsontext='[{"persons":[{"name":"jordan","sex":"m","age":"40"}, {"name":"bryant","sex":"m","age":"28"}, {"name":"McGrady","sex":"m","age":"27"} ]}]';
我們可以使用eval()函數(shù)調(diào)用JavaScript的編譯器把JSON文本轉(zhuǎn)變成對(duì)象。因?yàn)镴SON是JavaScript的一個(gè)確切的子集,編譯器可以正確地解析JSON文本,然后生成一個(gè)對(duì)象結(jié)構(gòu)。
//調(diào)用eval函數(shù)轉(zhuǎn)換為json對(duì)象,
var myE = eval(normalstring);
//將json對(duì)象轉(zhuǎn)換為字符串
var text = JSON.stringify(myE);
//對(duì)比轉(zhuǎn)換后的json文本與聲明的文本區(qū)別
document.writeln('轉(zhuǎn)換后的json文本:'+text+'<br><br>聲明的json格式文本 '+jsontext+'<br><br>聲明的普通格式文本 '+normalstring+'<br><br>');
結(jié)果如下:
轉(zhuǎn)換后的json文本:[{"persons":[{"name":"jordan","sex":"m","age":"40"},{"name":"bryant","sex":"m","age":"28"},{"name":"McGrady","sex":"m","age":"27"}]}]
聲明的json格式文本 [{"persons":[{"name":"jordan","sex":"m","age":"40"},{"name":"bryant","sex":"m","age":"28"},{"name":"McGrady","sex":"m","age":"27"}]}]
聲明的普通格式文本 [{persons:[{name:"jordan",sex:"m",age:"40"}, {name:"bryant",sex:"m",age:"28"}, {name:"McGrady",sex:"m",age:"27"} ]}]
小結(jié):轉(zhuǎn)換后的json文本和聲明的json格式文本內(nèi)容是相同的。
//當(dāng)安全比較重要的時(shí)候使用JSON解析就好一些。JSON解析只會(huì)識(shí)別JSON文本并且它更安全,下面調(diào)用json的parse函數(shù)對(duì)文本數(shù)據(jù)轉(zhuǎn)換生成json數(shù)據(jù)結(jié)構(gòu)
var myData = JSON.parse(jsontext);
完整的文件如下(區(qū)別:myJSONObject,jsontext,normalstring的不同):
復(fù)制代碼 代碼如下:
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript" src="js/json2.js"></script>
</head>
<body>
<script>
var normalstring='[{persons:[{name:"jordan",sex:"m",age:"40"}, {name:"bryant",sex:"m",age:"28"}, {name:"McGrady",sex:"m",age:"27"} ]}]';
var jsontext='[{"persons":[{"name":"jordan","sex":"m","age":"40"}, {"name":"bryant","sex":"m","age":"28"}, {"name":"McGrady","sex":"m","age":"27"} ]}]';
var myJSONObject = {"bindings": [
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
]
};
//調(diào)用eval函數(shù)轉(zhuǎn)換為json對(duì)象,
var myE = eval(normalstring);
//將json對(duì)象轉(zhuǎn)換為字符串
var text = JSON.stringify(myE);
//對(duì)比轉(zhuǎn)換后的json文本與聲明的文本區(qū)別
document.writeln('轉(zhuǎn)換后的json文本:'+text+'<br><br>聲明的json格式文本 '+jsontext+'<br><br>聲明的普通格式文本 '+normalstring+'<br><br>');
//JSON解析
var myData = JSON.parse(jsontext);
</script>
</body>
</html>
4.)示例演示二:
復(fù)制代碼 代碼如下:
//下面是對(duì)json對(duì)象的增刪查改操作
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript" src="js/json2.js"></script>
</head>
<body>
<script>
//聲明json對(duì)象
var jsonObj2={persons:[
{name:"jordan",sex:"m",age:"40"},
{name:"bryant",sex:"m",age:"28"},
{name:"McGrady",sex:"m",age:"27"}
]};
var persons=jsonObj2.persons;
var str="";
var person={name:"yaoMing",sex:"m",age:"26"};
//以下為json對(duì)象的操作,去掉注釋可以查看操作結(jié)果
jsonObj2.persons.push(person);//數(shù)組最后加一條記錄
jsonObj2.persons.pop();//刪除最后一項(xiàng)
jsonObj2.persons.shift();//刪除第一項(xiàng)
jsonObj2.persons.unshift(person);//數(shù)組最前面加一條記錄 只要適合Javascript的方法都是可以用在JSON對(duì)象的數(shù)組中的!所以還有另外的方法splice( )進(jìn)行crud操作! //刪除
jsonObj2.persons.splice(0,2);//開始位置,刪除個(gè)數(shù)
//替換不刪除
var self={name:"tom",sex:"m",age:"24"};
var brother={name:"Mike",sex:"m",age:"29"};
jsonObj2.persons.splice(1,0,self,brother,self);//開始位置,刪除個(gè)數(shù),插入對(duì)象
//替換并刪除
jsonObj2.persons.splice(0,1,self,brother);//開始位置,刪除個(gè)數(shù),插入對(duì)象
for(var i=0;i<persons.length;i++){
var cur_person=persons[i];
str+=cur_person.name+"'sex is "+cur_person.sex+" and age is "+cur_person.age+"<br><br>";
}
document.writeln(str);
//轉(zhuǎn)換為json文本
var myjsonobj = JSON.stringify(jsonObj2);
document.writeln(myjsonobj);
document.writeln(persons.length);
</script>
</body>
</html>
您可能感興趣的文章:
相關(guān)文章
JSON 學(xué)習(xí)之JSON in JavaScript詳細(xì)使用說明
只需要在前臺(tái)頁(yè)面中引入相應(yīng)的javascript即可測(cè)試2010-02-02深入淺析同源與跨域,jsonp(函數(shù)封裝),CORS原理
這篇文章主要介紹了同源與跨域,jsonp(函數(shù)封裝),CORS原理,從同源政策中Ajax限制,到跨域問題以及跨域問題的解決方法幫大家更加深入的去了解其中原理2021-08-08Javascript 通過json自動(dòng)生成Dom的代碼
主要還是通過遞歸和迭代來遍歷json成員生成html元素 ,比較好的是num能制定循環(huán)次數(shù)可以少寫很多代碼.具體應(yīng)用看場(chǎng)景了2010-04-04js+json用表格實(shí)現(xiàn)簡(jiǎn)單網(wǎng)站左側(cè)導(dǎo)航
閑暇之余,制作一用表格實(shí)現(xiàn)的簡(jiǎn)單的網(wǎng)站導(dǎo)航條,分享給大家。這里的數(shù)據(jù)基于json格式,學(xué)習(xí)json的朋友可以參考下。2010-04-04json實(shí)現(xiàn)前后臺(tái)的相互傳值詳解
這篇文章主要介紹了json實(shí)現(xiàn)前后臺(tái)的相互傳值詳解,需要的朋友可以參考下2015-01-01JSON 入門教程基礎(chǔ)篇 json入門學(xué)習(xí)筆記
剛開始接觸json的時(shí)候感覺有點(diǎn)奇怪的命名,后來使用才發(fā)現(xiàn)這么簡(jiǎn)單而且用好用,擴(kuò)展性很強(qiáng),這里就為大家整理一下2020-09-09js操作兩個(gè)json數(shù)組合并、去重,以及刪除某一項(xiàng)元素
這篇文章主要介紹了js操作兩個(gè)json數(shù)組合并、去重,以及刪除某一項(xiàng)元素,需要的朋友可以參考下2020-09-09