프로젝트를 수행 할 때는 OCX 컨트롤에 명령을 발행하려면 JS의 Java에서 객체를 가져 와서 형식으로 철자를 작성해야합니다. . . 물체가 하나 일 때 더 간단하지만 배열이라면 약간 번거 롭습니다.
처음에는 컨텐츠를 직접 변환하는 간단한 방법이 있다고 생각했지만 나중에는 불가능하다는 것을 알았습니다. 인터넷은 JS와 Java가 다리가 없다고 말했다.
내 해결책은 액션 레이어에서 Java 객체 배열을 JSON 문자열로 변환하고 JS에서 json을 배열 객체로 변환하십시오.
1. Java 객체 배열을 JSON 문자열로 변환합니다.
두 가지 클래스를 사용해야합니다.
net.sf.json.jsonobjectnet.sf.json.jsonarray // 각 차량 객체를 JSON 형식으로 객체로 분할하고 jsonobject json = jsonobject.fromobject (v)를 발행하는 데 사용됩니다. // v, 즉 객체 jsonarray.add (json); //system.out.println (jsonarray.tostring ()); // sendCommandList = jsonArray.toString ()에 사용합니다.
루프를 위해 넣으십시오.
2.JS는이를 다양한 객체로 변환합니다.
// 참고 :이 시점에서 얻는 것은 JSON 문자열입니다. // 참고 : EscapeJavaScript = "False"Escape = "False", 그렇지 않으면 전달 된 JSON 문자열의 인용문은 "var szjsonst ="<s : property evapeJavaScript = "false"excl = "false"value = "sendCommandList" />에 구문 분석됩니다.
마침내 :
// json 문자열을 객체 배열로 변환 var addvehiclearray = Eval (szjsonst);
그것을 사용할 때는 addvehiclearray [i] .vehicletype를 사용하십시오. 괜찮아요. . . . . .
확장 :
jsonobject 및 jsonarray의 사용
1. JAR 패키지 소개
프로그램을 실행하려면 JSON-LIB 패키지를 소개해야하며 다음과 같은 JAR 패키지에 따라 다릅니다.
Commons-lang.jar
Commons-Beanutils.jar
공통점 수집
커먼즈 로깅
ezmorph.jar
JSON-LIB-2.2.2-JDK15.jar
2. jsonobject 객체 사용
JSON-LIB 패키지는 콩, 컬렉션,지도, Java 어레이 및 XML 및 JSON을 변환하는 패키지입니다. 이 경우 jsonobject 클래스를 사용하여 jsonobject 객체를 생성 한 다음 해당 객체의 값을 인쇄합니다. jsonobject 객체를 사용하려면 "net.sf.json"패키지를 소개하려고합니다. 객체에 요소를 추가하려면 put () 메소드를 사용해야합니다.
2.1. 예 1
패키지 jsontest; import net.sf.json.jsonarray; import net.sf.json.jsonobject; public class jsonobjectsample {// jsonobject 객체 private static jsonobject createjsonobject () {jsonobject jsonobject = new jsonobject (); jsonobject.put ( "username", "huangwuyi"); jsonobject.put ( "sex", "male"); jsonobject.put ( "qq", "413425430"); JsonObject.put ( "Min.Score", New Integer (99)); jsonobject.put ( "닉네임", "Dream Center"); jsonobject를 반환합니다. } public static void main (string [] args) {jsonobject jsonobject = jsonobjectsample.createjsonobject (); // 메소드를 기다리면 클래스 이름 + 메소드를 통해 직접 호출 // output jsonobject 객체 system.out.println ( "jsonobject :" + jsonobject); // 출력 객체의 유형을 해석 부울 isArray = jsonobject.isarray (); 부울 isempty = jsonobject.isempty (); 부울 isnullobject = jsonobject.isnullobject (); System.out.println ( "배열인가 :" + isarray + ", isnullobject :" + isnullobject); // jsonObject 다음에 속성을 추가하고 요소를 추가합니다. jsonobject.element ( "주소", "Xiamen City, Fujian Province"); System.out.println ( "속성을 추가 한 후 객체 :" + jsonobject); // jsonArray 객체를 반환합니다 jsonArray jsonArray = new JsonArray (); jsonarray.add (0, "이것은 jsonarray 값입니다"); jsonarray.add (1, "다른 jsonarray 값"); jsonobject.element ( "jsonarray", jsonarray); // jsonobject jsonarray array = jsonobject.getJsonArray ( "jsonArray") 뒤에 jsonarray를 상주합니다. System.out.println (jsonobject); System.out.println ( "jsonarray 객체를 반환 :" + 배열); // JSONARRAY 이후 // { "사용자 이름": "Huangwuyi", "Sex": "Male", "QQ": "413425430", "Min.score": "Min.Score": "Nickname": "Dream Center", "Xiamen City, Fujian Province", "Jsonarray": [Jsonarray "" value "]} system.out.println ("result = " + jsonobject); // 키 문자열에 따라 문자열을 반환합니다. 사용자 이름 = jsonobject.getString ( "username"); System.out.println ( "username ==>" + username); // 문자를 jsonObject 문자열로 변환하십시오 temp = jsonobject.tostring (); jsonobject object = jsonobject.fromobject (temp); // 변환 후, 키 시스템을 기반으로 값을 반환 값. }}출력 결과
jsonObject : { "username": "huangwuyi", "sex": "male", "qq": "413425430", "min.score": 99, "nickname": "dream center"}은 "daly, false, isnuleaddress object" { "사용자 이름": "Huangwuyi", "Sex": "Male", "QQ": "413425430", "Min.score": 99, "Nickname": "Dream Center", "주소": "Xiamen City, Fujian 지방 "} {"username ":"huangwuyi ","sex ":"male ","qq ":"413425430 ","413425430 ","min.score ": 99,"nickname ":"Dream Center ","주소 ":"Xiamen City, Fujian Province ","jsonarray "} jsonarray" "," "," "," ",", "", ",", "", "," ",", ","Xsonarray " JSONARRAY OBJECT : [ "이것은 JSONARRAY 값입니다", "또 다른 JSONARRAY 값"] result = { "username": "Huangwuyi", "섹스", "성": "남자", "QQ": "413425430", "Min.Score": "Nicknam": "Dream Center", "Xiamen City, Fujian City" 지방 ","JSONARRAY ": ["이것은 JSONARRAY 값입니다 ","또 다른 jsonArray 값 "]} username ==> huangwuyiqq = 4134254302.2. 예 2.
패키지 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 (); // jsonobj0 생성 jsonobj0.put ( "name0", "zhangsan"); jsonobj0.put ( "sex1", "female"); System.out.println ( "jsonobj0 :"+jsonobj0); // jsonobj1 생성 jsonobj.put ( "name", "xuwei"); jsonobj.put ( "sex", "male"); System.out.println ( "jsonobj :"+jsonobj); // JSONOBJ2를 만들고 두 개의 항목이 포함되어 있으며 항목의 내용은 jsonobj0, jsonobj1 jsonobj2.put ( "item0", jsonobj0)입니다. jsonobj2.put ( "item1", jsonobj); System.out.println ( "jsonobj2 :"+jsonobj2); // JSONOBJ3을 생성하고, 하나의 항목 만 있으며, 내용은 jsonobj2 jsonobj3.element ( "j3", jsonobj2)입니다. System.out.println ( "jsonobj3 :"+jsonobj3); // jsonArray에 jsonObject 객체를 추가합니다. JSONARRAY와 JSONOBJECT의 차이점은 JSONARRAY가 jsonObject [] jsonarray.add (jsonobj)보다 더 많은 괄호가 있다는 것입니다. System.out.println ( "jsonarray :"+jsonarray); jsonobject jsonobj4 = new jsonobject (); jsonobj4. Element ( "날씨", jsonarray); System.out.println ( "jsonobj4 :"+jsonobj4); }}출력 결과 :
jsonobj0 : { "name0": "zhangsan", "sex1": "여자"} jsonobj : { "name": "xuwei", "sex": "male"} jsonobj2 : { "item0": { "name0": "zhangsan", "sex1": "여자"}, "item1": { "name": "xuwei", "sex"}} jsonobj3 : { "j3": { "item0": { "name0": "zhangsan", "sex1": "female"}, "item1": { "name": "xuwei", "sex": "male"}}} j sonarray : [{ "name": "xuwei", "sex": "male"}] jsonobj4 : { "weather": [{ "name": "xuwei", "sex": "male"}]}Java에서 배열 객체를 수신하고 변환하는 위의 방법은 내가 공유하는 모든 컨텐츠입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.