日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)JSON教程:js/jquery解析json和數(shù)組格式的方法詳解

在解析之前,我們必須弄清楚幾個概念:數(shù)組,關(guān)聯(lián)數(shù)組以及JSON之間有哪些區(qū)別和聯(lián)系點?

成都創(chuàng)新互聯(lián)是一家專業(yè)提供銀州企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、HTML5、小程序制作等業(yè)務(wù)。10年已為銀州眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進行中。

一、概念介紹

1、數(shù)組

語法: 
ECMAScript v3規(guī)定了數(shù)組直接量的語法,JavaScript 1.2和JScript 3.0實現(xiàn)了它。可以把—個用逗號分隔的表達式列表放在方括號中,創(chuàng)建并初始化—個數(shù)組。這些表達式的值將成為數(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),如果要對其進行操作必須轉(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)鍵點

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中對其進行必要的操作,可以通過eval()進行轉(zhuǎn)換成js可執(zhí)行的對象。
因此jQuey中提供的$.parseJSON()是有局限的,如果是上面1提到的這種情況則就必須使用eval()進行轉(zhuǎn)換,然后再通過$.each(objs,function(i,o){...})進行操作

三、具體的實例代碼

頁面代碼:

代碼如下:


 
 
 

后臺代碼:

代碼如下:

@Override
 protected void service(HttpServletRequest req, HttpServletResponse reps)
   throws ServletException, IOException {
  Map jsonMap=new HashMap();
  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解析json數(shù)組字符串

一個json對象數(shù)組的json字符串:

var str=[{"Price":12,"Name":"aaa","Age",22},{"Price":24,"Name":"bbb","Age",33}];

在前臺,使用jquery的parseJSON方法來進行解析,并用jquery的foreach的方法來進行解析,代碼如下:

var jsonarray= $.parseJSON(str);
alert(jsonarray);
$.each(jsonarray, function (i, n)
{
    alert(n.Price);
}

對于不同版本的jquery來說,它們解析的json對象數(shù)組的字符串格式也不同(我使用了兩個不同版本的jquery,就遇到了這樣的問題),如果上述代碼無法解析,就用eval函數(shù)來包裹一下,代碼如下:

var jsonarray= $.parseJSON(str);
$.each(eval("(" + jsonarray+ ")"), function (i, n) {
    alert(n.Price);
}

在解析json對象數(shù)組字符串的過程中,也可以使用alert來彈出$.parseJSON(str)解析后的結(jié)果,如果彈出的對話框中顯示object,則說明解析成功了,可以通過對象.屬性名獲得到對應(yīng)屬性的值,如果彈出的不是object,則用eval()來進行包裝一下形成對象,再獲得對應(yīng)屬性的值。


分享名稱:創(chuàng)新互聯(lián)JSON教程:js/jquery解析json和數(shù)組格式的方法詳解
標(biāo)題URL:http://www.5511xx.com/article/cdhjsjo.html