List of usage examples for jdk.nashorn.api.scripting JSObject keySet
public Set<String> keySet();
From source file:game.engine.game.JavascriptConsole.java
License:Open Source License
/** * /*from www. java2s .com*/ */ private void dump(Object o, StringBuilder builder) { // handle known types if (o == null) { builder.append("null"); return; } else if (o instanceof String) { builder.append('"').append(o).append('"'); return; } // try to wrap JS values and dump them, or fall back to toString() o = jdk.nashorn.api.scripting.ScriptUtils.wrap(o); if (o instanceof JSObject) { JSObject object = (JSObject) o; if (object.isArray()) { builder.append('['); boolean first = true; for (Object element : object.values()) { if (first) { first = false; } else { builder.append(", "); } dump(element, builder); } builder.append("]"); } else if (object.isFunction()) { builder.append("function"); } else { builder.append('{'); boolean first = true; for (Object key : object.keySet()) { if (first) { first = false; } else { builder.append(", "); } dump(key, builder); builder.append(": "); dump(object.getMember(key.toString()), builder); } builder.append("}"); } } else { builder.append(o); } }
From source file:io.lightlink.output.JSONResponseStream.java
License:Open Source License
@Override public synchronized void writeFullObjectToArray(Object value) { beginIfNeeded();// w w w . ja v a2 s. c om comma(); if (value != null && value instanceof jdk.nashorn.internal.runtime.ScriptObject) { ScriptObject so = (ScriptObject) value; if (so.isArray()) { writeArrayStart(); int length = ((Number) so.get("length")).intValue(); for (int i = 0; i < length; i++) { writeFullObjectToArray(genericDateConvert(so.get(i))); } writeArrayEnd(); } else { writeObjectStart(); for (Object key : so.keySet()) { writeProperty("" + key, genericDateConvert(so.get(key))); } writeObjectEnd(); } return; } else if (value != null && value instanceof jdk.nashorn.api.scripting.JSObject) { JSObject jsObject = (JSObject) value; if (jsObject.isArray()) { writeArrayStart(); int length = ((Number) jsObject.getMember("length")).intValue(); for (int i = 0; i < length; i++) { writeFullObjectToArray(genericDateConvert(jsObject.getSlot(i))); } writeArrayEnd(); } else { writeObjectStart(); for (String key : jsObject.keySet()) { writeProperty(key, genericDateConvert(jsObject.getMember(key))); } writeObjectEnd(); } return; } else if (value != null && value instanceof jdk.nashorn.internal.objects.NativeArray) { NativeArray array = (NativeArray) value; value = array.asObjectArray(); } List list = new ArrayList(); value = handlePrimitiveArrays(value, list); if (value instanceof Map) { writeObjectStart(); Map<Object, Object> map = (Map<Object, Object>) value; if (value instanceof BeanMap) { for (Map.Entry<Object, Object> entry : map.entrySet()) { if (!"class".equals(entry.getKey())) { writeProperty(entry.getKey() + "", entry.getValue()); } } } else { for (Map.Entry<Object, Object> entry : map.entrySet()) { writeProperty(entry.getKey() + "", entry.getValue()); } } writeObjectEnd(); } else if (value instanceof List) { writeArrayStart(); for (Object o : (List) value) { writeFullObjectToArray(o); } writePropertyArrayEnd(); } else if (value instanceof InputStream) { writeInputStream((InputStream) value); } else if (value instanceof Reader) { writeFromReader((Reader) value); } else if (value instanceof Object[]) { writeArrayStart(); for (Object o : (Object[]) value) { writeFullObjectToArray(o); } writeArrayEnd(); } else if (value instanceof Date) { String dateFormat; if (getRunnerContext() != null && getRunnerContext().getTypesFacade().getCustomDatePattern() != null) { TypesFacade tf = getRunnerContext().getTypesFacade(); dateFormat = tf.getCustomDatePattern(); } else dateFormat = DateConverter.UNIVERSAL_DATE_FORMAT; writeString(new SimpleDateFormat(dateFormat).format(value)); } else if (value == null) { writeUnquoted("null"); } else if (value instanceof Number || value instanceof Boolean) { writeUnquoted(value); } else { writeString(value.toString()); } commaNeeded = true; }
From source file:io.lightlink.servlet.JsMethodsDefinitionServlet.java
License:Open Source License
private Map<String, String> getCustomServices() throws IOException { // list custom services Map<String, String> customServices = new LinkedHashMap<String, String>(); Script customServicesScript = configManager.getScript("#customServices.js", false); if (customServicesScript != null) { ScriptEngine engine = ConfigManager.getScriptEngine(); try {//from w ww . j a v a 2 s . co m Object result = engine.eval(customServicesScript.getContent()); if (result instanceof JSObject) { JSObject jsObject = (JSObject) result; Set<String> keys = jsObject.keySet(); for (String key : keys) { customServices.put(key, "" + jsObject.getMember(key)); } } } catch (ScriptException e) { LogUtils.error(getClass(), e); } } return customServices; }
From source file:io.stallion.utils.json.JSObjectSerializer.java
License:Open Source License
@Override public void serialize(JSObject value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { if (value.isArray()) { jgen.writeStartArray();/*from ww w .j a v a 2 s.c om*/ int i = -1; for (;;) { if (value.hasSlot(++i)) { jgen.writeObject(value.getSlot(i)); } else { break; } } jgen.writeEndArray(); } else { jgen.writeStartObject(); for (String key : value.keySet()) { jgen.writeObjectField(key, value.getMember(key)); } jgen.writeEndObject(); } }