json用のibmコモン・ライブラリーは、オブジェクトを作成し、そのオブジェクトにjsonプロパティーを追加することによって機能します。オブジェクトを自動シリアライズすることはできず、実際にはプリミティブなデータ型でのみ機能します。
クラスの操作方法を示すためにSSJSコードを添付しました。 recordMapは、いくつかのBeanを含むJavaマップインスタンスであり、各BeanにはfieldName1からfieldName5という5つのフィールドがあります。このコードはマップ内の各Beanを反復処理し、5つのフィールドを取得し、値をJSONに変換して配列にプッシュします。最後に、配列は、カウントと配列自体を含む別のjsonオブジェクトの中に入れられます。
var jsonObjArr = [];
var itr:java.util.Iterator = recordMap.keySet().iterator();
while (itr.hasNext()) {
var record = recordMap.get(itr.next());
var jsonObj:com.ibm.commons.util.io.json.JsonJavaObject =
new com.ibm.commons.util.io.json.JsonJavaObject();
jsonObj.putJsonProperty("fieldName1", record.getFieldName1());
jsonObj.putJsonProperty("fieldName2", record.getFieldName2());
jsonObj.putJsonProperty("fieldName3", record.getFieldName3());
jsonObj.putJsonProperty("fieldName4", record.getFieldName4());
jsonObj.putJsonProperty("fieldName5", record.getFieldName5());
jsonObj.putJsonProperty("fieldName6", record.getFieldName6());
jsonObjArr.push(com.ibm.commons.util.io.json.JsonGenerator
.toJson(com.ibm.commons.util.io.json.JsonJavaFactory.instanceEx, empr));
};
var jsonString = "{" +
"count:" + @Text(jsonObjArr.length) + "," +
"employees:" + "[" + jsonObjArr.join(",") + "]" +
"}";
return jsonString;
・ホープ、このことができます。..
ありがとう、ジェレミーは助けますが、それは理想的ではありません。 Java Securityのプロパティを変更することなく、GSONライブラリをフレームワークにフォールディングする方法があると思いますか? – markbarton
私はライブラリを見なければなりませんが、そこには問題はあまりないと思っています。セキュリティマネージャーがそれに不平を言うことはあまりありません。 –