Cuando trabaja en un proyecto, si desea emitir comandos para el control OCX, debe obtener los objetos en Java en JS, y luego deletrearlos en un formato y emitirlos. . . Es más simple cuando un objeto es uno, pero es un poco problemático si es una matriz.
Al principio pensé que había una manera simple de convertir directamente el contenido, pero luego descubrí que no era posible. Internet dijo que JS y Java no tienen cosas puentes, así que:
Mi solución es: en la capa de acción, convierta la matriz de objeto Java en una cadena JSON, y en JS, convierta JSON en un objeto de matriz.
1. Convierta la matriz de objeto Java en una cadena JSON:
Se deben utilizar dos clases:
net.sf.json.jsonobjectnet.sf.json.jsonarray // divide cada objeto de vehículo en un objeto en formato JSON, y se usa para emitir jsonObject json = jsonObject.FromObject (v); // V Eso es, Object JsonArray.Add (JSON); //System.out.println (jsonArray.ToString ()); // Usar en sendCommandList = jsonArray.ToString ();
Ponlo en un bucle para.
2.js lo convierte en una matriz de objetos:
// NOTA: Lo que obtienes en este momento es la cadena JSON. // NOTA: EscapeJavaScript = "false" escapar = "falso", de lo contrario, las citas en la cadena JSON pasadas se analizarán en "var szjsonstr = '<s: Property EscapeJavaScript =" False "Escape =" False "Value =" SendCommandList " />';
por fin:
// convertir la cadena JSON en matriz de objeto var addveHiclearRay = eval (szjsonstr);
Al usarlo, simplemente use AddVehiclearRay [i] .Vehictletype; Está bien. . . . . .
Extensiones:
El uso de Jsonobject y JsonArray
1. Introducción al paquete de jar
Para que el programa se ejecute, se debe introducir el paquete JSON-LIB, que también depende de los siguientes paquetes JAR:
Commons-lang.jar
Commons-Beanutils.Jar
comunes-colections.Jar
logging de bienes comunes.jar
ezmorph.jar
JSON-LIB-2.2.2-JDK15.JAR
2. Uso del objeto de JsonObject
El paquete JSON-LIB es un paquete que convierte frijoles, colecciones, mapas, matrices Java y XML y JSON. En este caso, usaremos la clase JSONObject para crear objetos JSONObject, y luego imprimimos los valores de esos objetos. Para usar el objeto JSONObject, queremos introducir el paquete "net.sf.json". Para agregar elementos al objeto, necesitamos usar el método Put ().
2.1. Ejemplo 1
paquete jsontest; import net.sf.json.jsonarray; import net.sf.json.jsonObject; public class jsonObjectSample {// create jsonObject object private static jsonObject createJsonObject () {jsonObject jsonObject = new jsonObject (); jsonObject.put ("Nombre de usuario", "Huangwuyi"); jsonObject.put ("sexo", "hombre"); jsonObject.put ("Qq", "413425430"); jsonObject.put ("min.score", nuevo entero (99)); jsonObject.put ("Apodo", "Dream Center"); return jsonObject; } public static void main (string [] args) {jsonObject jsonObject = jsonObjectSample.CreateJsonObject (); // Espere el método, llame directamente a través del nombre de clase + método // salida jsonObject Object System.out.println ("JSONObject:" + JSONObject); // interpretar el tipo de objeto de salida boolean isArray = jsonObject.IsArray (); boolean isEmpty = jsonObject.isEmpty (); boolean isnulLObject = jsonObject.ISNULLObject (); System.out.println ("es una matriz:" + isarray + ", isnulLoBject:" + isNulLObject); // Agregar atributos y agregar elementos después de jsonobject. jsonObject.Element ("Dirección", "Ciudad de Xiamen, Provincia de Fujian"); System.out.println ("Un objeto después de agregar atributos:" + jsonObject); // devuelve un objeto JSONArray JSONArray JSONArray = new JsonArray (); JSONArray.Add (0, "Este es un valor de JSONArray"); JSONArray.Add (1, "Otro valor de JSONArray"); jsonObject.Element ("JSONArray", JSONArray); // Reside a JSONArray detrás de JSONOBJECT JSONArray Array = jsonObject.getJsonArray ("JSONArray"); System.out.println (jsonObject); System.out.println ("Devuelve un objeto JSONArray:" + Array); // Agregue el valor después de JSonArray // {"Nombre de usuario": "Huangwuyi", "Sex": "Masculino", "Qq": "413425430", "Min.Score": 99, "Apodo": "Centro de sueños", "Dirección": "Xiamen City, Provincon Fujia", "Jsonarray": ["Esto es un Jsonarray,", "" Anteo de la ciudad de Xiamen "," Jsonarray ": [" Esto es un Jsonarray. valor "]} system.out.println (" result = " + jsonObject); // Devuelve una cadena de acuerdo con la cadena clave de usuario de usuario = jsonObject.getString ("nombre de usuario"); System.out.println ("UserName ==>" + UserName); // Convertir los caracteres a jsonObject String temp = jsonObject.ToString (); JSONObject Object = jsonObject.FromObject (temp); // Después de la conversión, el valor de retorno basado en la clave System.out.println ("Qq =" + Object.get ("Qq")); }}Resultado de salida
JSONObject: {"Nombre de usuario": "Huangwuyi", "Sex": "masculino", "qq": "413425430", "min.score": 99, "apodo": "centro de sueño"} es una matriz: falso, es vacío: falso, isnleBject: falsoaddress Object después de agregar atributo: atributo: {"Nombre de usuario": "Huangwuyi", "Sex": "Masculino", "Qq": "413425430", "Min.score": 99, "Apodo": "Centro de sueños", "Dirección": "Xiamen City, Fujian Provincia "} {" nombre de usuario ":" Huangwuyi "," Sex ":" masculino "," qq ":" 413425430 "," min.score ": 99," apodo ":" centro de sueño "," dirección ":" Ciudad de Xiamen, FuJian Province "," jSonArray ": [" Esto es un valor de JSONArray "," otra jsonsort JSONArray Object: ["Este es un valor de JSONArray", "otro valor de JSONArray"] resultado = {"nombre de usuario": "Huangwuyi", "Sex": "masculino", "qq": "413425430", "Min.score": 99, "Nombre": "Centro de ensueño", "Dirección": "Ciudad Xiamen, FUJIAN, FUJANAN Provincia "," JSONArray ": [" Este es un valor de JSONArray "," Otro valor de JSONArray "]} UserName ==> Huangwuyiqq = 4134254302.2. Ejemplo 2.
paquete 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 (); // crear jsonobj0 jsonobj0.put ("name0", "zhangsan"); jsonobj0.put ("sex1", "mujer"); System.out.println ("JSONOBJ0:"+JSONOBJ0); // crear jsonobj1 jsonobj.put ("name", "xuwei"); jsonobj.put ("sexo", "hombre"); System.out.println ("JSONOBJ:"+JSONOBJ); // Crear jsonobj2, contiene dos entradas, el contenido de las entradas son jsonobj0, jsonobj1 jsonobj2.put ("item0", jsonobj0); jsonobj2.put ("item1", jsonobj); System.out.println ("JSONOBJ2:"+JSONOBJ2); // Crear jsonobj3, solo hay una entrada, los contenidos son jsonobj2 jsonobj3.element ("j3", jsonobj2); System.out.println ("JSONOBJ3:"+JSONOBJ3); // Agregar objeto JSONObject a JSONArray. Descubrió que la diferencia entre JSONArray y JsonObject es que JSONArray tiene más soportes que JSONOBJECT [] JSONArray.add (JSONOBJ); System.out.println ("JSONArray:"+JSONArray); JsonObject jsonobj4 = new JsonObject (); JSONOBJ4.Element ("Weather", JSONArray); System.out.println ("JSONOBJ4:"+JSONOBJ4); }}Resultado de salida:
jsonobj0: {"name0": "zhangsan", "sex1": "femenino"} jsonobj: {"name": "xuwei", "sexo": "masculino"} jsonobj2: { "item0": {"name0": "zhangsan", "sex1": "femenino"}, "item1": {"name": "xuwei", "sexo": "masculino"}} jsonobj3: {"j3": {"item0": {"name0": "zhangsan", "sex1": "femenino"}, "item1": {"name": "xuwei", "sexo": "masculino"}} j SonArray: [{"nombre": "xuwei", "sexo": "masculino"}] jsonobj4: {"clima": [{"nombre": "xuwei", "sexo": "masculino"}]}El método anterior para recibir y convertir objetos de matriz en Java es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.