/** * Serializes an object into JSON output. * * @param writer {@link JsonWriter} used to write the serialized JSON * @param value Object to serialize * @param ctx Context for the full serialization process * * @throws JsonSerializationException if an error occurs during the serialization */ public void serialize( JsonWriter writer, T value, JsonSerializationContext ctx ) throws JsonSerializationException { serialize( writer, value, ctx, JsonSerializerParameters.DEFAULT ); }
/** * <p>serializeId</p> * * @param writer a {@link com.github.nmorel.gwtjackson.client.stream.JsonWriter} object. * @param ctx a {@link com.github.nmorel.gwtjackson.client.JsonSerializationContext} object. */ public void serializeId( JsonWriter writer, JsonSerializationContext ctx ) { serializer.serialize( writer, id, ctx ); } }
/** * Serializes an object into JSON output. * * @param writer {@link JsonWriter} used to write the serialized JSON * @param value Object to serialize * @param ctx Context for the full serialization process * @param params Parameters for this serialization * * @throws JsonSerializationException if an error occurs during the serialization */ public void serialize( JsonWriter writer, T value, JsonSerializationContext ctx, JsonSerializerParameters params ) throws JsonSerializationException { serialize( writer, value, ctx, params, false ); }
/** * Serializes the property defined for this instance. * * @param writer writer * @param bean bean containing the property to serialize * @param ctx context of the serialization process */ public void serialize( JsonWriter writer, T bean, JsonSerializationContext ctx ) { getSerializer().serialize( writer, getValue( bean, ctx ), ctx, getParameters() ); } }
serializer.serialize( writer, first, ctx, params ); while ( iterator.hasNext() ) { serializer.serialize( writer, iterator.next(), ctx, params ); serializer.serialize( writer, first, ctx, params ); writer.beginArray(); while ( iterator.hasNext() ) { serializer.serialize( writer, iterator.next(), ctx, params );
/** {@inheritDoc} */ @Override public void doSerialize( JsonWriter writer, T[] values, JsonSerializationContext ctx, JsonSerializerParameters params ) { if ( !ctx.isWriteEmptyJsonArrays() && values.length == 0 ) { writer.cancelName(); return; } if ( ctx.isWriteSingleElemArraysUnwrapped() && values.length == 1 ) { serializer.serialize( writer, values[0], ctx, params ); } else { writer.beginArray(); for ( T value : values ) { serializer.serialize( writer, value, ctx, params ); } writer.endArray(); } } }
@Override protected void doSerialize( JsonWriter writer, Optional<T> value, JsonSerializationContext ctx, JsonSerializerParameters params ) { if ( value.isPresent() ) { serializer.serialize( writer, value.get(), ctx, params ); } else if ( writer.getSerializeNulls() ) { writer.nullValue(); } else { writer.setSerializeNulls( true ); writer.nullValue(); writer.setSerializeNulls( false ); } } }
/** {@inheritDoc} */ @Override public void doSerialize( JsonWriter writer, C values, JsonSerializationContext ctx, JsonSerializerParameters params ) { if ( values.isEmpty() ) { if ( ctx.isWriteEmptyJsonArrays() ) { writer.beginArray(); writer.endArray(); } else { writer.cancelName(); } return; } if ( ctx.isWriteSingleElemArraysUnwrapped() && values.size() == 1 ) { // there is only one element, we write it directly serializer.serialize( writer, values.iterator().next(), ctx, params ); } else { writer.beginArray(); for ( T value : values ) { serializer.serialize( writer, value, ctx, params ); } writer.endArray(); } } }
@Override public void doSerialize( JsonWriter writer, M multimap, JsonSerializationContext ctx, JsonSerializerParameters params ) { writer.beginObject(); if ( !multimap.isEmpty() ) { for ( Entry<K, Collection<V>> entry : multimap.asMap().entrySet() ) { String name = keySerializer.serialize( entry.getKey(), ctx ); if ( keySerializer.mustBeEscaped( ctx ) ) { writer.name( name ); } else { writer.unescapeName( name ); } writer.beginArray(); for ( V value : entry.getValue() ) { valueSerializer.serialize( writer, value, ctx, params ); } writer.endArray(); } } writer.endObject(); } }
@Override public void serializeInternally( JsonWriter writer, T value, JsonSerializationContext ctx, JsonSerializerParameters params, IdentitySerializationInfo<T> defaultIdentityInfo, TypeSerializationInfo<T> defaultTypeInfo ) { final TypeSerializationInfo typeInfo = null == params.getTypeInfo() ? defaultTypeInfo : params.getTypeInfo(); if ( null != typeInfo ) { String typeInformation = typeInfo.getTypeInfo( value.getClass() ); if ( null == typeInformation ) { throw ctx.traceError( value, "Cannot find type info for class " + value.getClass(), writer ); } switch ( typeInfo.getInclude() ) { case WRAPPER_OBJECT: // type info is included in a wrapper object that contains only one property. The name of this property is the type // info and the value the object writer.beginObject(); writer.name( typeInformation ); getSerializer().serialize( writer, value, ctx, params ); writer.endObject(); break; default: // included as wrapper array even if property is set writer.beginArray(); writer.value( typeInformation ); getSerializer().serialize( writer, value, ctx, params ); writer.endArray(); } } else { getSerializer().serialize( writer, value, ctx, params ); } } }
/** {@inheritDoc} */ @Override public String write( T value, JsonSerializationContext ctx ) throws JsonSerializationException { JsonWriter writer = ctx.newJsonWriter(); try { if ( ctx.isWrapRootValue() ) { writer.beginObject(); writer.name( rootName ); getSerializer().serialize( writer, value, ctx ); writer.endObject(); } else { getSerializer().serialize( writer, value, ctx ); } return writer.getOutput(); } catch ( JsonSerializationException e ) { // already logged, we just throw it throw e; } catch ( RuntimeException e ) { throw ctx.traceError( value, e, writer ); } }
/** {@inheritDoc} */ @Override public void doSerialize( JsonWriter writer, T[][] values, JsonSerializationContext ctx, JsonSerializerParameters params ) { if ( !ctx.isWriteEmptyJsonArrays() && values.length == 0 ) { writer.cancelName(); return; } writer.beginArray(); for ( T[] array : values ) { writer.beginArray(); for ( T value : array ) { serializer.serialize( writer, value, ctx, params ); } writer.endArray(); } writer.endArray(); } }
@Override protected void doSerialize( JsonWriter writer, Ref<T> ref, JsonSerializationContext ctx, JsonSerializerParameters params ) { writer.beginObject(); writer.name( RefConstant.KEY ); KeyJsonSerializer.getInstance().serialize( writer, ref.getKey(), ctx, params ); writer.name( RefConstant.VALUE ); serializer.serialize( writer, ref.getValue(), ctx, params ); writer.endObject(); } }