เมื่อทำงานในโครงการหากคุณต้องการออกคำสั่งไปยังการควบคุม OCX คุณจะต้องได้รับวัตถุใน Java ใน JS แล้วสะกดพวกเขาเป็นรูปแบบและออก - - มันง่ายกว่าเมื่อวัตถุเป็นหนึ่ง แต่มันเป็นปัญหาเล็กน้อยถ้ามันเป็นอาร์เรย์
ตอนแรกฉันคิดว่ามีวิธีง่ายๆในการแปลงเนื้อหาโดยตรง แต่หลังจากนั้นฉันก็พบว่ามันเป็นไปไม่ได้ อินเทอร์เน็ตบอกว่า JS และ Java ไม่มีสิ่งที่เชื่อมโยงดังนั้น:
ทางออกของฉันคือ: ที่เลเยอร์การกระทำให้แปลงอาร์เรย์วัตถุ Java เป็นสตริง JSON และใน JS แปลง JSON เป็นวัตถุอาร์เรย์
1. แปลงอาร์เรย์วัตถุ Java เป็นสตริง JSON:
จะใช้สองคลาส:
net.sf.json.jsonobjectnet.sf.json.jsonarray // แยกวัตถุยานพาหนะแต่ละรายการออกเป็นวัตถุในรูปแบบ JSON และใช้ในการออก jsonObject json = jsonobject.fromobject (v); // v นั่นคือ Object jsonarray.add (JSON); //system.out.println (jsonarray.toString ()); // ใช้เพื่อ sendCommandList = jsonArray.toString ();
ใส่ไว้ใน A for loop
2.JS แปลงเป็นอาร์เรย์ของวัตถุ:
// หมายเหตุ: สิ่งที่คุณได้รับในเวลานี้คือสตริง JSON // หมายเหตุ: EscapeJavascript = "false" eScape = "FALSE" มิฉะนั้นคำพูดในสตริง JSON ที่ผ่านไปจะถูกแยกวิเคราะห์เป็น "var szjsonsters = '<s: คุณสมบัติ Escapejavascript =" false "Escape =" false "value =" SendCommandList " />';
ในที่สุด:
// แปลงสตริง JSON เป็นอาร์เรย์วัตถุ var addvehiclearray = eval (szjsonstr);
เมื่อใช้งานเพียงแค่ใช้ addvehiclearray [i] .vehicletype; ไม่เป็นไร - - - - -
ส่วนขยาย:
การใช้ JsonObject และ JsonArray
1. บทนำสู่แพ็คเกจ JAR
เพื่อให้โปรแกรมทำงานต้องมีการแนะนำแพ็คเกจ JSON-LIB ซึ่งขึ้นอยู่กับแพ็คเกจ JAR ต่อไปนี้:
Commons-lang.jar
Commons-beanutils.jar
Commons-collections.jar
Commons-logging.jar
ezmorph.jar
JSON-LIB-2.2.2-JDK15.JAR
2.JSONOBJECT OBJECT OBJECT
แพ็คเกจ JSON-LIB เป็นแพ็คเกจที่แปลงถั่วคอลเลกชันแผนที่อาร์เรย์ Java และ XML และ JSON ในกรณีนี้เราจะใช้คลาส JSONObject เพื่อสร้างวัตถุ JSONObject จากนั้นเราจะพิมพ์ค่าของวัตถุเหล่านั้น ในการใช้วัตถุ JSONObject เราต้องการแนะนำแพ็คเกจ "net.sf.json" ในการเพิ่มองค์ประกอบให้กับวัตถุเราจำเป็นต้องใช้วิธีการใส่ ()
2.1. ตัวอย่างที่ 1
แพ็คเกจ jSontest; นำเข้า net.sf.json.jsonarray; นำเข้า net.sf.json.jsonObject; คลาสสาธารณะ JsonObjectSample {// สร้าง jsonObject วัตถุส่วนตัว jsonObject createJSonObject () {jsonObject jsonObject = new JSonObject (); jsonObject.put ("ชื่อผู้ใช้", "Huangwuyi"); jsonObject.put ("เพศ", "ชาย"); jsonObject.put ("qq", "413425430"); jsonObject.put ("min.score", จำนวนเต็มใหม่ (99)); jsonObject.put ("ชื่อเล่น", "Dream Center"); กลับ JsonObject; } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {jsonObject jsonObject = jsonObjectsample.createJsonObject (); // รอวิธีการโทรผ่านชื่อคลาส + เมธอด // เอาท์พุท jsonobject system.out.println ("Jsonobject:" + JsonObject); // ตีความประเภทของ boolean วัตถุเอาต์พุต 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); // อาศัยอยู่ JsonArray ด้านหลัง JsonObject JsonArray Array = JsonObject.getJsonarray ("JsonArray"); System.out.println (jsonobject); System.out.println ("ส่งคืนวัตถุ JsonArray:" + อาร์เรย์); // เพิ่มค่าหลังจาก jsonarray // {"ชื่อผู้ใช้": "Huangwuyi", "Sex": "Male", "QQ": "413425430", "min.score": 99, "ชื่อเล่น": "Dream Center", "ที่อยู่": ค่า "]} system.out.println (" result = " + jsonObject); // ส่งคืนสตริงตามชื่อผู้ใช้สตริงคีย์ = jsonObject.getString ("ชื่อผู้ใช้"); System.out.println ("ชื่อผู้ใช้ ==>" + ชื่อผู้ใช้); // แปลงอักขระเป็น jsonObject string temp = jsonobject.toString (); jsonObject object = jsonObject.FromObject (temp); // หลังจากการแปลงค่าส่งคืนตามคีย์ System.out.println ("qq =" + object.get ("qq")); -ผลลัพธ์ผลลัพธ์
jsonObject: {"ชื่อผู้ใช้": "Huangwuyi", "Sex": "Male", "qq": "413425430", "min.score": 99, "ชื่อเล่น": "ศูนย์กลางความฝัน"} {"ชื่อผู้ใช้": "Huangwuyi", "Sex": "Male", "qq": "413425430", "min.score": 99, "ชื่อเล่น": "Dream Center", "ที่อยู่": "Xiamen City, Fujian" จังหวัด "} {" ชื่อผู้ใช้ ":" Huangwuyi "," Sex ":" Male "," qq ":" 413425430 "," min.score ": 99," ชื่อเล่น ":" Dream Center "," ที่อยู่ ":" Xiamen City, Fujian JsonArray Object: ["นี่คือค่า jsonarray", "ค่า jsonarray อื่น"] ผลลัพธ์ = {"ชื่อผู้ใช้": "huangwuyi", "เพศ": "ชาย", "qq": "413425430", "min.score": 99, "ชื่อเล่น": จังหวัด "," JsonArray ": [" นี่คือค่า JSONARRAY "," ค่า JSONARRAY อื่น "]} ชื่อผู้ใช้ ==> HUANGWUYIQQ = 4134254302.2. ตัวอย่างที่ 2
แพ็คเกจ jSontest; นำเข้า net.sf.json.jsonarray; นำเข้า net.sf.json.jsonObject; คลาสสาธารณะ jSontest {โมฆะสาธารณะคงที่หลัก (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", "จาง"); jsonobj0.put ("sex1", "หญิง"); System.out.println ("jsonobj0:"+jsonobj0); // สร้าง jsonobj1 jsonobj.put ("ชื่อ", "xuwei"); jsonobj.put ("เพศ", "ชาย"); 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); // เพิ่มวัตถุ JSONObject ลงใน JSONARRAY พบว่าความแตกต่างระหว่าง JsonArray และ JsonObject คือ JsonArray มีวงเล็บมากกว่า jsonObject [] jsonarray.add (jsonobj); System.out.println ("jsonarray:"+jsonarray); jsonObject jsonObj4 = new jsonObject (); JSONOBJ4.Element ("Weather", JsonArray); System.out.println ("jsonobj4:"+jsonobj4); -ผลลัพธ์ผลลัพธ์:
jsonobj0: {"name0": "Zhangsan", "sex1": "female"} jsonobj: {"name": "xuwei", "เพศ": "ชาย"} jsonobj2: { "item0": {"name0": "Zhangsan", "sex1": "female"}, "item1": {"name": "xuwei", "เพศ": "ชาย"}} jsonobj3: {"j3": {"item0": {"name0": "zhangsan", "sex1": "หญิง"}, "item1": {"name": "xuwei", "sex": "ชาย"}}} j Sonarray: [{"Name": "Xuwei", "Sex": "Male"}] Jsonobj4: {"Weather": [{"Name": "Xuwei", "Sex": "Male"}}}วิธีการข้างต้นในการรับและแปลงวัตถุอาร์เรย์ใน Java เป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น