/** * Serializes object into provided appendable. */ public void serialize(final Object source, final Appendable target) { JsonContext jsonContext = createJsonContext(target); jsonContext.serialize(source); }
/** * Invoked on serializable properties, that have passed all the rules. * Property type is <code>null</code> for metadata class name property. */ protected void onSerializableProperty(final String propertyName, final Class propertyType, final Object value) { jsonContext.pushName(propertyName, count > 0); jsonContext.serialize(value); if (jsonContext.isNamePopped()) { count++; } }
@Override public void serializeValue(final JsonContext jsonContext, final Iterable iterable) { jsonContext.writeOpenArray(); int count = 0; for (Object element : iterable) { if (count > 0) { jsonContext.writeComma(); } if (jsonContext.serialize(element)) { count++; } } jsonContext.writeCloseArray(); } }
jsonContext.serialize(value);
@Override public void serializeValue(final JsonContext jsonContext, final Object array) { final int length = getLength((K[]) array); if (length == 0 && jsonContext.isExcludeEmpty()) { return; } jsonContext.writeOpenArray(); int count = 0; for (int i = 0; i < length; i++) { if (count > 0) { jsonContext.writeComma(); } if (jsonContext.serialize(get((K[]) array, i))) { count++; } } jsonContext.writeCloseArray(); } }
@Override public boolean serialize(final JsonContext jsonContext, final JsonArray jsonArray) { final int length = jsonArray.size(); if (length == 0 && jsonContext.isExcludeEmpty()) { return true; } jsonContext.writeOpenArray(); int count = 0; for (int i = 0; i < length; i++) { if (count > 0) { jsonContext.writeComma(); } if (jsonContext.serialize(jsonArray.getValue(i))) { count++; } } jsonContext.writeCloseArray(); return true; } }