js/jquery解析json和數(shù)組格式的方法詳解
在解析之前,我們必須弄清楚幾個概念:數(shù)組,關(guān)聯(lián)數(shù)組以及json之間有哪些區(qū)別和聯(lián)系點(diǎn)?
一.概念介紹
1.數(shù)組
語法:
ECMAScript v3規(guī)定了數(shù)組直接量的語法,JavaScript 1.2和JScript 3.0實(shí)現(xiàn)了它??梢园选獋€用逗號分隔的表達(dá)式列表放在方括號中,創(chuàng)建并初始化—個數(shù)組。這些表達(dá)式的值將成為數(shù)組元素。例如:
var a = [1, true, 'abc'];
具體操作查看API.
ps:必須方括號隔開。
2.關(guān)聯(lián)數(shù)組
1.語法:
var myhash= {”key1″:”val1″, “key2″:”val2″ };//obj
2.var
myhash= {key1:”val1″, key2:”val2″ };//obj-也可以
ps:跟json格式幾乎相同,但是json格式要求更加嚴(yán)格(里面的鍵值對必須使用雙引號),但json只能作為一種格式標(biāo)準(zhǔn),如果要對其進(jìn)行操作必須轉(zhuǎn)換成關(guān)聯(lián)數(shù)組對象(obj)。
2.簡單操作
1.向Hash關(guān)聯(lián)數(shù)組添加鍵值
// 添加一個新鍵 newkey ,鍵值為 newval
myhash[”newkey”] = “newval”;
2.刪除Hash關(guān)聯(lián)數(shù)組已有鍵值
// 刪除一個鍵 newkey ,同時,該鍵值對應(yīng)的 newval 也就消失了
delete myhash[”newkey”];
3.遍歷Hash關(guān)聯(lián)數(shù)組
// 遍歷整個hash 數(shù)組
for (key in myhash) {
val = myhash[key];
}
4.獲得值
方式1.myhash.key1
方式2.myhash.key2
3.json
格式要求:
{”key1″:”val1″, “key2″:”val2″ };//嚴(yán)格按照此格式,操作可依照關(guān)聯(lián)數(shù)組的操作
二.前后臺交互中幾個關(guān)鍵點(diǎn)
1.當(dāng)服務(wù)器發(fā)送的數(shù)據(jù)不是一條json,而是多條json時,則應(yīng)當(dāng)聯(lián)系數(shù)組和關(guān)聯(lián)數(shù)組來組裝字符串
例如:var objs = [{ id: 1, name: 'n_1' }, { id: 2, name: 'n_2'}];
2.至始至終服務(wù)器給客戶端的數(shù)據(jù)都只是字符串,因此為了讓其能夠在js中對其進(jìn)行必要的操作,可以通過eval()進(jìn)行轉(zhuǎn)換成js可執(zhí)行的對象。
因此jQuey中提供的$.parseJSON()是有局限的,如果是上面1提到的這種情況則就必須使用eval()進(jìn)行轉(zhuǎn)換,然后再通過$.each(objs,function(i,o){...})進(jìn)行操作
三.具體的實(shí)例代碼
頁面代碼:
<body>
<input type="button" value="send ajax json" onclick="sendAjaxByjson();"/>
<input type="button" value="send ajax array" onclick="sendAjaxByarray();"/>
</body>
<script type="text/javascript">
function sendAjaxByjson(){
$.post("json",{},function(data){
var obj=data;
alert(typeof obj);//string
//var a=eval(obj);不解,不注釋則會報錯..
var strToobj=$.parseJSON(obj);
alert(strToobj.name);
alert(typeof strToobj)//obj
var obja={'name':'techbirds','age':'23','sex':'male'};
alert(typeof obja);//obj
alert(obja['name']+":"+obja.age);
delete obja['name'];
});
}
function sendAjaxByarray(){
$.post("array",{},function(data){
var str=data;
alert(typeof str);//string
alert(typeof eval(str));//object
var obja=[1,2,3,4,5];
alert(typeof obja);//object
});
}
</script>
后臺代碼:
@Override
protected void service(HttpServletRequest req, HttpServletResponse reps)
throws ServletException, IOException {
Map<String, Object> jsonMap=new HashMap<String, Object>();
jsonMap.put("name", "techbirds");
jsonMap.put("age", 23);
jsonMap.put("sex", "male");
reps.getWriter().print(JSONObject.fromObject(jsonMap).toString());
reps.getWriter().flush();
reps.getWriter().close();
}
@Override
protected void service(HttpServletRequest req, HttpServletResponse reps)
throws ServletException, IOException {
String array="[1,2,3,4,5,6]";
reps.getWriter().print(array);
reps.getWriter().flush();
reps.getWriter().close();
}
- jquery eval解析JSON中的注意點(diǎn)介紹
- jQuery怎么解析Json字符串(Json格式/Json對象)
- jquery解析json格式數(shù)據(jù)的方法(對象、字符串)
- Jquery解析json字符串及json數(shù)組的方法
- jQuery解析Json實(shí)例詳解
- Jquery解析json數(shù)據(jù)詳解
- jQuery解析json數(shù)據(jù)實(shí)例分析
- jQuery解析json格式數(shù)據(jù)簡單實(shí)例
- 深入分析jquery解析json數(shù)據(jù)
- Jquery解析Json格式數(shù)據(jù)過程代碼
- jQuery解析json格式數(shù)據(jù)示例
相關(guān)文章
jquery實(shí)現(xiàn)文本框textarea自適應(yīng)高度
這篇文章主要介紹了jquery實(shí)現(xiàn)文本框textarea自適應(yīng)高度的相關(guān)資料,需要的朋友可以參考下2016-03-03
JS實(shí)現(xiàn)兼容各種瀏覽器的高級拖動方法完整實(shí)例【測試可用】
這篇文章主要介紹了JS實(shí)現(xiàn)兼容各種瀏覽器的高級拖動方法,以完整實(shí)例形式分析了JS實(shí)現(xiàn)響應(yīng)鼠標(biāo)事件動態(tài)修改頁面元素的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2016-06-06
讓GoogleCode的SVN下的HTML文件在FireFox下正常顯示.
GoogleCode可以作為免費(fèi)的穩(wěn)定的靜態(tài)資源空間來使用,比如JQuery的文檔就在上面2009-05-05
JavaScript設(shè)計模式之享元模式實(shí)例詳解
這篇文章主要介紹了JavaScript設(shè)計模式之享元模式,結(jié)合實(shí)例形式較為詳細(xì)的分析了javascript享元模式相關(guān)概念、原理、用法及操作注意事項,需要的朋友可以參考下2019-01-01
在js(jquery)中獲得文本框焦點(diǎn)和失去焦點(diǎn)的方法
文章介紹兩個方法和種是利用javascript onFocus onBlur來判斷焦點(diǎn)和失去焦點(diǎn),加一種是利用jquery $("p").blur(); 或$("p").blur(fn)來實(shí)現(xiàn),有需要的朋友可以參考一下2012-12-12
JavaScript 實(shí)現(xiàn)鍋拍灰太狼小游戲
這篇文章主要介紹了JavaScript 實(shí)現(xiàn)鍋拍灰太狼小游戲,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09

