List of usage examples for jdk.nashorn.internal.runtime ScriptObject keySet
public Set<Object> keySet()
From source file:io.lightlink.output.JSONResponseStream.java
License:Open Source License
@Override public synchronized void writeFullObjectToArray(Object value) { beginIfNeeded();//from w w w . j ava 2 s . co m 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.stallion.utils.json.ScriptObjectSerializer.java
License:Open Source License
@Override public void serialize(ScriptObject value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { if (value.isArray()) { jgen.writeStartArray();//from ww w . j a v a2s .c o m int i = -1; for (;;) { if (value.has(++i)) { jgen.writeObject(value.get(i)); } else { break; } } jgen.writeEndArray(); } else { jgen.writeStartObject(); for (Object key : value.keySet()) { jgen.writeObjectField(key.toString(), value.get(key)); } jgen.writeEndObject(); } }