json的ibm commons庫通過構造一個對象,然後向該對象添加json屬性來工作。它不能自動序列化一個對象,並且只能用於原始數據類型。
我附上了一些SSJS代碼來說明如何使用該類。它假定recordMap是一個java映射實例,其中包含一些bean,每個bean有5個字段,分別爲fieldName1到fieldName5。代碼遍歷地圖中的每個bean,檢索5個字段,將這些值轉換爲JSON,然後將它們推送到數組中。最後,數組放入另一個包含count的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;
希望這有助於..
謝謝傑里米它有幫助,但它不理想。您認爲有沒有辦法將GSON庫摺疊到框架中,而無需更改Java安全屬性? – markbarton 2012-03-15 10:13:14
林不知道,我不得不看看圖書館,但我猜測不會有太大的問題 - 不要以爲安全經理會抱怨那麼多。 – 2012-03-15 13:53:32