亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

js接收并轉(zhuǎn)化Java中的數(shù)組對(duì)象的方法

 更新時(shí)間:2016年08月11日 10:38:05   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇js接收并轉(zhuǎn)化Java中的數(shù)組對(duì)象的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

在做項(xiàng)目時(shí),要向ocx控件下發(fā)命令,就要在js中得到j(luò)ava中的對(duì)象,然后拼成一種格式,下發(fā)下去。。。當(dāng)對(duì)象是一個(gè)時(shí)比較簡(jiǎn)單,但如果對(duì)象是一個(gè)數(shù)組時(shí),就略顯麻煩了。

開(kāi)始我以為有簡(jiǎn)單的方式,可以直接進(jìn)行內(nèi)容的轉(zhuǎn)化,后來(lái)發(fā)現(xiàn)不可以,網(wǎng)上說(shuō)js與java沒(méi)有橋接的東西,所以呢:

我的解決方案是:在action層,將java的對(duì)象數(shù)組轉(zhuǎn)化為Json串,而在js中,再把json轉(zhuǎn)化為數(shù)組對(duì)象。

1.將java的對(duì)象數(shù)組轉(zhuǎn)化為Json串:

要用到兩個(gè)類(lèi):

net.sf.json.JSONObject
net.sf.json.JSONArray


//將每個(gè)vehicle對(duì)象拼接為json格式的對(duì)象,用于命令下發(fā)
JSONObject json = JSONObject.fromObject(v); //v即對(duì)象
jsonArray.add(json);
//System.out.println(jsonArray.toString());
//用于命令下發(fā)
sendCommandList = jsonArray.toString();

將其放在for循環(huán)中。

2.js將其轉(zhuǎn)化為對(duì)象數(shù)組:

//注意:此時(shí)得到的是Json串。

//注意:要加上escapeJavaScript="false" escape="false" ,否則傳過(guò)來(lái)Json字符串中的引號(hào)都會(huì)被解析成為&quot

var szJsonStr = '<s:property escapeJavaScript="false" escape="false" value="sendCommandList" />';

最后:

//把Json字符串轉(zhuǎn)化為對(duì)象數(shù)組
var addVehicleArray = eval(szJsonStr);

在用的時(shí)候,就直接用addVehicleArray[i].vehicleType;即可以了。。。。。。

擴(kuò)展:

JSONObject與JSONArray的使用

1.JAR包簡(jiǎn)介

要使程序可以運(yùn)行必須引入JSON-lib包,JSON-lib包同時(shí)依賴(lài)于以下的JAR包:

commons-lang.jar
commons-beanutils.jar
commons-collections.jar
commons-logging.jar
ezmorph.jar
json-lib-2.2.2-jdk15.jar

2.JSONObject對(duì)象使用

JSON-lib包是一個(gè)beans,collections,maps,java arrays 和XML和JSON互相轉(zhuǎn)換的包。在本例中,我們將使用JSONObject類(lèi)創(chuàng)建JSONObject對(duì)象,然后我們打印這些對(duì)象的值。為了使用JSONObject對(duì)象,我們要引入"net.sf.json"包。為了給對(duì)象添加元素,我們要使用put()方法。

2.1.實(shí)例1













package jsontest;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;


public class JSONObjectSample {


  // 創(chuàng)建JSONObject對(duì)象
  private static JSONObject createJSONObject() {
    JSONObject jsonObject = new JSONObject();
    jsonObject.put("username", "huangwuyi");
    jsonObject.put("sex", "男");
    jsonObject.put("QQ", "413425430");
    jsonObject.put("Min.score", new Integer(99));
    jsonObject.put("nickname", "夢(mèng)中心境");
    return jsonObject;
  }


  public static void main(String[] args) {
    JSONObject jsonObject = JSONObjectSample.createJSONObject();//靜待方法,直接通過(guò)類(lèi)名+方法調(diào)用
    // 輸出jsonobject對(duì)象
    System.out.println("jsonObject:" + jsonObject);


    // 判讀輸出對(duì)象的類(lèi)型
    boolean isArray = jsonObject.isArray();
    boolean isEmpty = jsonObject.isEmpty();
    boolean isNullObject = jsonObject.isNullObject();
    System.out.println("是否為數(shù)組:" + isArray + ", 是否為空:" + isEmpty
        + ", isNullObject:" + isNullObject);


    // 添加屬性,在jsonObject后面追加元素。
    jsonObject.element("address", "福建省廈門(mén)市");
    System.out.println("添加屬性后的對(duì)象:" + jsonObject);


    // 返回一個(gè)JSONArray對(duì)象
    JSONArray jsonArray = new JSONArray();
    jsonArray.add(0, "this is a jsonArray value");
    jsonArray.add(1, "another jsonArray value");
    jsonObject.element("jsonArray", jsonArray);
    //在jsonObject后面住家一個(gè)jsonArray
    JSONArray array = jsonObject.getJSONArray("jsonArray");
    System.out.println(jsonObject);
    
    
    System.out.println("返回一個(gè)JSONArray對(duì)象:" + array);
    // 添加JSONArray后的值
    // {"username":"huangwuyi","sex":"男","QQ":"413425430","Min.score":99,"nickname":"夢(mèng)中心境","address":"福建省廈門(mén)市","jsonArray":["this is a jsonArray value","another jsonArray value"]}
    System.out.println("結(jié)果=" + jsonObject);


    // 根據(jù)key返回一個(gè)字符串
    String username = jsonObject.getString("username");
    System.out.println("username==>" + username);


    // 把字符轉(zhuǎn)換為 JSONObject
    String temp = jsonObject.toString();
    JSONObject object = JSONObject.fromObject(temp);
    // 轉(zhuǎn)換后根據(jù)Key返回值
    System.out.println("qq=" + object.get("QQ"));


  }


}

輸出結(jié)果

jsonObject:{"username":"huangwuyi","sex":"男","QQ":"413425430","Min.score":99,"nickname":"夢(mèng)中心境"}
是否為數(shù)組:false, 是否為空:false, isNullObject:false
添加屬性后的對(duì)象:{"username":"huangwuyi","sex":"男","QQ":"413425430","Min.score":99,"nickname":"夢(mèng)中心境","address":"福建省廈門(mén)市"}
{"username":"huangwuyi","sex":"男","QQ":"413425430","Min.score":99,"nickname":"夢(mèng)中心境","address":"福建省廈門(mén)市","jsonArray":["this is a jsonArray value","another jsonArray value"]}
返回一個(gè)JSONArray對(duì)象:["this is a jsonArray value","another jsonArray value"]
結(jié)果={"username":"huangwuyi","sex":"男","QQ":"413425430","Min.score":99,"nickname":"夢(mèng)中心境","address":"福建省廈門(mén)市","jsonArray":["this is a jsonArray value","another jsonArray value"]}
username==>huangwuyi
qq=413425430

2.2.實(shí)例2.

package jsontest;


import net.sf.json.JSONArray;
import net.sf.json.JSONObject;


public class JSONTest {
  public static void main(String args[])
  {
    JSONObject jsonObj0 = new JSONObject();
    JSONObject jsonObj = new JSONObject();
    JSONObject jsonObj2 = new JSONObject();
    JSONObject jsonObj3 = new JSONObject();
    JSONArray jsonArray = new JSONArray();
    
    //創(chuàng)建jsonObj0
    jsonObj0.put("name0", "zhangsan");
    jsonObj0.put("sex1", "female");
    System.out.println("jsonObj0:"+jsonObj0);
    
    //創(chuàng)建jsonObj1
    jsonObj.put("name", "xuwei");
    jsonObj.put("sex", "male");
    System.out.println("jsonObj:"+jsonObj);
  
    //創(chuàng)建jsonObj2,包含兩個(gè)條目,條目?jī)?nèi)容分別為jsonObj0,jsonObj1
    jsonObj2.put("item0", jsonObj0);
    jsonObj2.put("item1", jsonObj);
    System.out.println("jsonObj2:"+jsonObj2);
    
    //創(chuàng)建jsonObj3,只有一個(gè)條目,內(nèi)容為jsonObj2
    jsonObj3.element("j3", jsonObj2);
    System.out.println("jsonObj3:"+jsonObj3);
  
    //往JSONArray中添加JSONObject對(duì)象。發(fā)現(xiàn)JSONArray跟JSONObject的區(qū)別就是JSONArray比JSONObject多中括號(hào)[]
    jsonArray.add(jsonObj);
    System.out.println("jsonArray:"+jsonArray);
    
    JSONObject jsonObj4 = new JSONObject();
    jsonObj4.element("weather", jsonArray);
    System.out.println("jsonObj4:"+jsonObj4);
  }
}

輸出結(jié)果:

jsonObj0:{"name0":"zhangsan","sex1":"female"}

jsonObj:{"name":"xuwei","sex":"male"}

jsonObj2:{"item0":{"name0":"zhangsan","sex1":"female"},"item1":{"name":"xuwei","sex":"male"}}

jsonObj3:{"j3":{"item0":{"name0":"zhangsan","sex1":"female"},"item1":{"name":"xuwei","sex":"male"}}}

jsonArray:[{"name":"xuwei","sex":"male"}]

jsonObj4:{"weather":[{"name":"xuwei","sex":"male"}]}

以上這篇js接收并轉(zhuǎn)化Java中的數(shù)組對(duì)象的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 根據(jù)出生日期自動(dòng)取得星座的js代碼

    根據(jù)出生日期自動(dòng)取得星座的js代碼

    最近這個(gè)項(xiàng)目需要注冊(cè)時(shí)用戶(hù)填寫(xiě)出生日期,然后自動(dòng)取得星座,想想好像用后臺(tái)代碼太麻煩只好轉(zhuǎn)而使用JavaScript。
    2010-07-07
  • 微信小程序?qū)崿F(xiàn)五星評(píng)價(jià)功能

    微信小程序?qū)崿F(xiàn)五星評(píng)價(jià)功能

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)五星評(píng)價(jià)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • JavaScript中undefined、null與NaN的區(qū)別

    JavaScript中undefined、null與NaN的區(qū)別

    undefined、null和NaN都屬于javascript中的數(shù)據(jù)類(lèi)型,本文主要介紹了 JavaScript中undefined、null與NaN的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • JS動(dòng)態(tài)更改div高度實(shí)現(xiàn)代碼例子

    JS動(dòng)態(tài)更改div高度實(shí)現(xiàn)代碼例子

    在Web開(kāi)發(fā)中通過(guò)使用JavaScript可以動(dòng)態(tài)地修改HTML元素的屬性和樣式,下面這篇文章主要給大家介紹了關(guān)于JS動(dòng)態(tài)更改div高度實(shí)現(xiàn)的相關(guān)資料,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-11-11
  • 小程序?qū)崿F(xiàn)層疊卡片滑動(dòng)效果

    小程序?qū)崿F(xiàn)層疊卡片滑動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了小程序?qū)崿F(xiàn)層疊卡片滑動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • JavaScript實(shí)現(xiàn)全選取消效果

    JavaScript實(shí)現(xiàn)全選取消效果

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)全選取消效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • JS時(shí)間戳與日期格式互相轉(zhuǎn)換的簡(jiǎn)單方法示例

    JS時(shí)間戳與日期格式互相轉(zhuǎn)換的簡(jiǎn)單方法示例

    這篇文章主要給大家介紹了關(guān)于JS時(shí)間戳與日期格式互相轉(zhuǎn)換的簡(jiǎn)單方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • ts封裝axios并處理返回值的實(shí)戰(zhàn)案例

    ts封裝axios并處理返回值的實(shí)戰(zhàn)案例

    在vue項(xiàng)目中,和后臺(tái)交互獲取數(shù)據(jù)這塊,我們通常使用的是axios庫(kù),下面這篇文章主要給大家介紹了關(guān)于ts封裝axios并處理返回值的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Javascript設(shè)計(jì)模式理論與編程實(shí)戰(zhàn)之簡(jiǎn)單工廠模式

    Javascript設(shè)計(jì)模式理論與編程實(shí)戰(zhàn)之簡(jiǎn)單工廠模式

    簡(jiǎn)單工廠模式是由一個(gè)方法來(lái)決定到底要?jiǎng)?chuàng)建哪個(gè)類(lèi)的實(shí)例, 而這些實(shí)例經(jīng)常都擁有相同的接口. 這種模式主要用在所實(shí)例化的類(lèi)型在編譯期并不能確定, 而是在執(zhí)行期決定的情況。 說(shuō)的通俗點(diǎn),就像公司茶水間的飲料機(jī),要咖啡還是牛奶取決于你按哪個(gè)按鈕
    2015-11-11

最新評(píng)論