プロジェクトに取り組むときは、OCXコントロールにコマンドを発行する場合は、JSのJavaでオブジェクトを取得してから、形式に綴って発行する必要があります。 。 。オブジェクトが1つの場合は簡単ですが、配列である場合は少し面倒です。
最初はコンテンツを直接変換する簡単な方法があると思っていましたが、後でそれが不可能であることがわかりました。インターネットは、JSとJavaには橋渡しされたものがないと言ったので、
私の解決策は、アクションレイヤーで、Javaオブジェクト配列をJSON文字列に変換し、JSでJSONを配列オブジェクトに変換します。
1。Javaオブジェクト配列をJSON文字列に変換します。
2つのクラスを使用する必要があります。
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文字列です。 //注:escasejavascript = "false" escase = "false"、それ以外の場合、渡されたjson文字列の引用は、「var szjsonstr = '<s:exascejavascript = "false" escase = "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.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( "nickname"、 "dream Center"); jsonobjectを返します。 } public static void main(string [] args){jsonobject jsonobject = jsonobjectsample.createjsonobject(); //メソッドを待機し、クラス名 +メソッド//出力jsonobject object System.out.println( "jsonobject:" + jsonobject); //出力オブジェクトのタイプを解釈しますboolean isarray = jsonobject.isarray(); boolean isempty = jsonobject.isempty(); boolean isnullobject = jsonobject.isnullobject(); system.out.println( "それは配列ですか:" + isarray + "、isnullobject:" + isnullobject); // jsonObjectの後に属性と追加の要素を追加します。 jsonobject.element( "address"、 "Xiamen City、Fujian Province"); system.out.println( "属性を追加した後のオブジェクト:" + jsonObject); // jsonArrayオブジェクトを返しますjsonarray jsonarray = new jsonarray(); jsonarray.add(0、 "これはjsonarray値です"); jsonarray.add(1、 "Another Jsonarray Value"); jsonobject.element( "jsonarray"、jsonarray); // jsonobject jsonarray array = jsonobject.getjsonarray( "jsonarray"); system.out.println(jsonobject); system.out.println( "jsonarrayオブジェクトを返す:" + array); // jsonarrayの後に値を追加// {"username": "huangwuyi"、 "sex": "male"、 "qq": "413425430"、 "min.score":99、 "nickname": "dream center"、 "dresday": "xiamen city、fujian but"、 "jsonarray": " value "]} system.out.println(" result = " + jsonobject); //キー文字列に従って文字列を返しますusername = jsonobject.getString( "username"); System.out.println( "username ==>" + username); //文字をjsonobject string temp = jsonobject.toString()に変換します。 jsonobject object = jsonobject.fromobject(temp); //変換後、Key System.out.println( "qq =" + object.get( "qq"))に基づいて値を返します。 }}出力結果
jsonobject:{"username": "huangwuyi"、 "sex": "bale"、 "qq": "413425430"、 "min.score":99、 "nickname": "dream center"}は配列です:false、false、false、false、false、falseaddress dressdress dress dress druss {"username": "huangwuyi"、 "sex": "male"、 "qq": "413425430"、 "min.score":99、 "nickname": "dream center"、 "address": "Xiamen City、Fujian州 "} {" username ":" huangwuyi "、" sex ":" male "、" qq ":" 413425430 "、" min.score ":99、" nickname ":" dream center "、" address ":" Xiamen City、Fujian Pardince "、" jsonarray "" jsonarrayオブジェクト:[「これはjsonarray値です」、「別のjsonarray値」] result = {"username": "huangwuyi"、 "sex": "male"、 "qq": "413425430"、 "min。州 "、" jsonarray ":["これはjsonarray値 "、"もう1つの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の作成には2つのエントリが含まれています。エントリの内容はjsonobj0、jsonobj1 jsonobj2.put( "item0"、jsonobj0)です。 jsonobj2.put( "item1"、jsonobj); System.out.println( "jsonobj2:"+jsonobj2); // jsonobj3を作成するには、1つのエントリのみがあり、内容は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"、 "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"}}}}} SonArray:[{"name": "xuwei"、 "sex": "male"}] jsonobj4:{"天気":[{"name": "xuwei"、 "sex": "male"}]}Javaで配列オブジェクトを受信および変換する上記の方法は、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。