Используемый вами метод JavaScript JSON.parse
возвращает просто простой объект JavaScript, а не JsonJavaObject
. Вы не можете использовать объект JavaScript позже в Java без дополнительных ненужных накладных расходов. Не используйте json2.jss
, используйте JsonParser
, как Пол Уизерс сказал.
Измените код, который получает JSON, из поля Notes:
#{javascript:
importPackage(com.ibm.commons.util.io.json);
var jsonText = doc.getItemValueString(itemname);
var jsonFactory:JsonFactory = JsonJavaFactory.instanceEx;
var jsonObject = JsonParser.fromJson(jsonFactory, jsonText);
sessionScope.put('configJSON', jsonObject);
}
Измените предоставленный Java-код, удалив ненужную строку:
Map<String, Object> sesScope = ExtLibUtil.getSessionScope();
if (null != sesScope.get("configJSON")) {
JsonJavaObject jsonObject = (JsonJavaObject) sesScope.get("configJSON");
System.out.println("got object?");
System.out.println("json " + jsonObject.toString());
}
Теперь вы должны быть в порядке.
Подсказка: если вы используете JsonJavaFactory.instance
вместо JsonJavaFactory.instanceEx
, вы получите java.util.HashMap
вместо JsonJavaObject