下面列出了com.fasterxml.jackson.core.JsonGenerator#writeStartArray ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* for attribute valueCharTypeArray serialization
*/
public static byte[] serializeValueCharTypeArray(char[] value) {
if (value==null) {
return null;
}
KriptonJsonContext context=KriptonBinder.jsonBind();
try (KriptonByteArrayOutputStream stream=new KriptonByteArrayOutputStream(); JacksonWrapperSerializer wrapper=context.createSerializer(stream)) {
JsonGenerator jacksonSerializer=wrapper.jacksonGenerator;
jacksonSerializer.writeStartObject();
int fieldCount=0;
if (value!=null) {
fieldCount++;
int n=value.length;
char item;
// write wrapper tag
jacksonSerializer.writeFieldName("element");
jacksonSerializer.writeStartArray();
for (int i=0; i<n; i++) {
item=value[i];
jacksonSerializer.writeNumber(item);
}
jacksonSerializer.writeEndArray();
}
jacksonSerializer.writeEndObject();
jacksonSerializer.flush();
return stream.toByteArray();
} catch(Exception e) {
e.printStackTrace();
throw(new KriptonRuntimeException(e.getMessage()));
}
}
/**
* for attribute valueMapStringByte serialization
*/
public static byte[] serializeValueMapStringByte(Map<String, Byte> value) {
if (value==null) {
return null;
}
KriptonJsonContext context=KriptonBinder.jsonBind();
try (KriptonByteArrayOutputStream stream=new KriptonByteArrayOutputStream(); JacksonWrapperSerializer wrapper=context.createSerializer(stream)) {
JsonGenerator jacksonSerializer=wrapper.jacksonGenerator;
jacksonSerializer.writeStartObject();
int fieldCount=0;
if (value!=null) {
fieldCount++;
// write wrapper tag
if (value.size()>0) {
jacksonSerializer.writeFieldName("element");
jacksonSerializer.writeStartArray();
for (Map.Entry<String, Byte> item: value.entrySet()) {
jacksonSerializer.writeStartObject();
jacksonSerializer.writeStringField("key", item.getKey());
if (item.getValue()==null) {
jacksonSerializer.writeNullField("value");
} else {
jacksonSerializer.writeNumberField("value", item.getValue());
}
jacksonSerializer.writeEndObject();
}
jacksonSerializer.writeEndArray();
} else {
jacksonSerializer.writeNullField("element");
}
}
jacksonSerializer.writeEndObject();
jacksonSerializer.flush();
return stream.toByteArray();
} catch(Exception e) {
e.printStackTrace();
throw(new KriptonRuntimeException(e.getMessage()));
}
}
@Override
public int serializeOnJackson(Bean03 object, JsonGenerator jacksonSerializer) throws Exception {
jacksonSerializer.writeStartObject();
int fieldCount=0;
// Serialized Field:
// field miscellaneus (mapped with "miscellaneus")
if (object.getMiscellaneus()!=null) {
fieldCount++;
int n=object.getMiscellaneus().size();
Integer item;
// write wrapper tag
jacksonSerializer.writeFieldName("miscellaneus");
jacksonSerializer.writeStartArray();
for (int i=0; i<n; i++) {
item=object.getMiscellaneus().get(i);
if (item==null) {
jacksonSerializer.writeNull();
} else {
jacksonSerializer.writeNumber(item);
}
}
jacksonSerializer.writeEndArray();
}
// field type (mapped with "type")
if (object.getType()!=null) {
fieldCount++;
jacksonSerializer.writeStringField("type", object.getType());
}
jacksonSerializer.writeEndObject();
return fieldCount;
}
/**
* for attribute valueShortSet serialization
*/
protected String serializeValueShortSet(HashSet<Short> value) {
if (value==null) {
return null;
}
KriptonJsonContext context=KriptonBinder.jsonBind();
try (KriptonByteArrayOutputStream stream=new KriptonByteArrayOutputStream(); JacksonWrapperSerializer wrapper=context.createSerializer(stream)) {
JsonGenerator jacksonSerializer=wrapper.jacksonGenerator;
jacksonSerializer.writeStartObject();
int fieldCount=0;
if (value!=null) {
fieldCount++;
// write wrapper tag
jacksonSerializer.writeFieldName("valueShortSet");
jacksonSerializer.writeStartArray();
for (Short item: value) {
if (item==null) {
jacksonSerializer.writeNull();
} else {
jacksonSerializer.writeNumber(item);
}
}
jacksonSerializer.writeEndArray();
}
jacksonSerializer.writeEndObject();
jacksonSerializer.flush();
return stream.toString();
} catch(Exception e) {
e.printStackTrace();
throw(new KriptonRuntimeException(e.getMessage()));
}
}
public static void printRepeatedSignedInt64(List<Long> values, JsonGenerator gen)
throws IOException {
int numElements = values.size();
gen.writeStartArray(numElements);
for (int i = 0; i < numElements; i++) {
printSignedInt64(values.get(i), gen);
}
gen.writeEndArray();
}
@Override
public void jackson(JsonGenerator j, Users obj) throws IOException {
j.writeStartObject();
if (obj.users != null) {
j.writeFieldName("users");
j.writeStartArray();
for (User u : obj.users) {
jackson(j, u);
}
j.writeEndArray();
}
j.writeEndObject();
}
/**
* for param serializer1 serialization
*/
private byte[] serializer1(char[] value) {
if (value==null) {
return null;
}
KriptonJsonContext context=KriptonBinder.jsonBind();
try (KriptonByteArrayOutputStream stream=new KriptonByteArrayOutputStream(); JacksonWrapperSerializer wrapper=context.createSerializer(stream)) {
JsonGenerator jacksonSerializer=wrapper.jacksonGenerator;
int fieldCount=0;
jacksonSerializer.writeStartObject();
if (value!=null) {
int n=value.length;
char item;
// write wrapper tag
jacksonSerializer.writeFieldName("element");
jacksonSerializer.writeStartArray();
for (int i=0; i<n; i++) {
item=value[i];
jacksonSerializer.writeNumber(item);
}
jacksonSerializer.writeEndArray();
}
jacksonSerializer.writeEndObject();
jacksonSerializer.flush();
return stream.toByteArray();
} catch(Exception e) {
e.printStackTrace();
throw(new KriptonRuntimeException(e.getMessage()));
}
}
@Override
public int serializeOnJackson(Response object, JsonGenerator jacksonSerializer) throws Exception {
jacksonSerializer.writeStartObject();
int fieldCount=0;
// Serialized Field:
// field status (mapped with "status")
if (object.status!=null) {
fieldCount++;
jacksonSerializer.writeStringField("status", object.status);
}
// field users (mapped with "users")
if (object.users!=null) {
fieldCount++;
int n=object.users.size();
User item;
// write wrapper tag
jacksonSerializer.writeFieldName("users");
jacksonSerializer.writeStartArray();
for (int i=0; i<n; i++) {
item=object.users.get(i);
if (item==null) {
jacksonSerializer.writeNull();
} else {
userBindMap.serializeOnJackson(item, jacksonSerializer);
}
}
jacksonSerializer.writeEndArray();
}
// field isRealJson (mapped with "is_real_json")
fieldCount++;
jacksonSerializer.writeBooleanField("is_real_json", object.isRealJson);
jacksonSerializer.writeEndObject();
return fieldCount;
}
/**
* for attribute valueStringArray serialization
*/
public static byte[] serializeValueStringArray(String[] value) {
if (value==null) {
return null;
}
KriptonJsonContext context=KriptonBinder.jsonBind();
try (KriptonByteArrayOutputStream stream=new KriptonByteArrayOutputStream(); JacksonWrapperSerializer wrapper=context.createSerializer(stream)) {
JsonGenerator jacksonSerializer=wrapper.jacksonGenerator;
jacksonSerializer.writeStartObject();
int fieldCount=0;
if (value!=null) {
fieldCount++;
int n=value.length;
String item;
// write wrapper tag
jacksonSerializer.writeFieldName("element");
jacksonSerializer.writeStartArray();
for (int i=0; i<n; i++) {
item=value[i];
if (item==null) {
jacksonSerializer.writeNull();
} else {
jacksonSerializer.writeString(item);
}
}
jacksonSerializer.writeEndArray();
}
jacksonSerializer.writeEndObject();
jacksonSerializer.flush();
return stream.toByteArray();
} catch(Exception e) {
e.printStackTrace();
throw(new KriptonRuntimeException(e.getMessage()));
}
}
private void writeCategories(JsonGenerator jsonGenerator, String key, String value) throws IOException {
jsonGenerator.writeFieldName(key);
jsonGenerator.writeStartArray();
for (String category : extractCategories(value)) {
jsonGenerator.writeString(category);
}
jsonGenerator.writeEndArray();
}
/**
* for attribute valueMapStringByte serialization
*/
protected String serializeValueMapStringByte(Map<String, Byte> value) {
if (value==null) {
return null;
}
KriptonJsonContext context=KriptonBinder.jsonBind();
try (KriptonByteArrayOutputStream stream=new KriptonByteArrayOutputStream(); JacksonWrapperSerializer wrapper=context.createSerializer(stream)) {
JsonGenerator jacksonSerializer=wrapper.jacksonGenerator;
jacksonSerializer.writeStartObject();
int fieldCount=0;
if (value!=null) {
fieldCount++;
// write wrapper tag
if (value.size()>0) {
jacksonSerializer.writeFieldName("valueMapStringByte");
jacksonSerializer.writeStartArray();
for (Map.Entry<String, Byte> item: value.entrySet()) {
jacksonSerializer.writeStartObject();
jacksonSerializer.writeStringField("key", item.getKey());
if (item.getValue()==null) {
jacksonSerializer.writeNullField("value");
} else {
jacksonSerializer.writeNumberField("value", item.getValue());
}
jacksonSerializer.writeEndObject();
}
jacksonSerializer.writeEndArray();
} else {
jacksonSerializer.writeNullField("valueMapStringByte");
}
}
jacksonSerializer.writeEndObject();
jacksonSerializer.flush();
return stream.toString();
} catch(Exception e) {
throw(new KriptonRuntimeException(e.getMessage()));
}
}
/**
* for attribute valueDoubleSet serialization
*/
protected String serializeValueDoubleSet(HashSet<Double> value) {
if (value==null) {
return null;
}
KriptonJsonContext context=KriptonBinder.jsonBind();
try (KriptonByteArrayOutputStream stream=new KriptonByteArrayOutputStream(); JacksonWrapperSerializer wrapper=context.createSerializer(stream)) {
JsonGenerator jacksonSerializer=wrapper.jacksonGenerator;
jacksonSerializer.writeStartObject();
int fieldCount=0;
if (value!=null) {
fieldCount++;
// write wrapper tag
jacksonSerializer.writeFieldName("valueDoubleSet");
jacksonSerializer.writeStartArray();
for (Double item: value) {
if (item==null) {
jacksonSerializer.writeNull();
} else {
jacksonSerializer.writeNumber(item);
}
}
jacksonSerializer.writeEndArray();
}
jacksonSerializer.writeEndObject();
jacksonSerializer.flush();
return stream.toString();
} catch(Exception e) {
e.printStackTrace();
throw(new KriptonRuntimeException(e.getMessage()));
}
}
@Override
public void serialize(Tuple1<?> value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
Object[] array = new Object[]{value._1()};
gen.writeStartArray();
for(Object o : array) {
JsonSerializer<Object> ser = serializers.findTypedValueSerializer(o.getClass(),true,null);
ser.serialize(o, gen, serializers);
}
gen.writeEndArray();
}
/**
* for attribute exampleMultiList serialization.
*
* @param value the value
* @return the string
*/
protected String serializeExampleMultiList(Set<String> value) {
if (value==null) {
return null;
}
KriptonJsonContext context=KriptonBinder.jsonBind();
try (KriptonByteArrayOutputStream stream=new KriptonByteArrayOutputStream(); JacksonWrapperSerializer wrapper=context.createSerializer(stream)) {
JsonGenerator jacksonSerializer=wrapper.jacksonGenerator;
jacksonSerializer.writeStartObject();
int fieldCount=0;
if (value!=null) {
fieldCount++;
// write wrapper tag
jacksonSerializer.writeFieldName("exampleMultiList");
jacksonSerializer.writeStartArray();
for (String item: value) {
if (item==null) {
jacksonSerializer.writeNull();
} else {
jacksonSerializer.writeString(item);
}
}
jacksonSerializer.writeEndArray();
}
jacksonSerializer.writeEndObject();
jacksonSerializer.flush();
return stream.toString();
} catch(Exception e) {
throw(new KriptonRuntimeException(e.getMessage()));
}
}
/**
* for attribute value2 serialization
*/
public static byte[] serializeValue2(Character[] value) {
if (value==null) {
return null;
}
KriptonJsonContext context=KriptonBinder.jsonBind();
try (KriptonByteArrayOutputStream stream=new KriptonByteArrayOutputStream(); JacksonWrapperSerializer wrapper=context.createSerializer(stream)) {
JsonGenerator jacksonSerializer=wrapper.jacksonGenerator;
jacksonSerializer.writeStartObject();
int fieldCount=0;
if (value!=null) {
fieldCount++;
int n=value.length;
Character item;
// write wrapper tag
jacksonSerializer.writeFieldName("element");
jacksonSerializer.writeStartArray();
for (int i=0; i<n; i++) {
item=value[i];
if (item==null) {
jacksonSerializer.writeNull();
} else {
jacksonSerializer.writeNumber(item);
}
}
jacksonSerializer.writeEndArray();
}
jacksonSerializer.writeEndObject();
jacksonSerializer.flush();
return stream.toByteArray();
} catch(Exception e) {
e.printStackTrace();
throw(new KriptonRuntimeException(e.getMessage()));
}
}
@Override
public void serialize(JsonSignedPreKeyStore jsonPreKeyStore, JsonGenerator json, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
json.writeStartArray();
for (Map.Entry<Integer, byte[]> signedPreKey : jsonPreKeyStore.store.entrySet()) {
json.writeStartObject();
json.writeNumberField("id", signedPreKey.getKey());
json.writeStringField("record", Base64.encodeBytes(signedPreKey.getValue()));
json.writeEndObject();
}
json.writeEndArray();
}
/**
* Serialize and save the collection members of this <code>entity</code>
*
* @param em Entity Manager
* @param collection Collection Name
* @param entity entity
*/
private void saveCollectionMembers( JsonGenerator jg, EntityManager em, String collection, Entity entity )
throws Exception {
// Write connections
saveConnections( entity, em, jg );
// Write dictionaries
saveDictionaries( entity, em, jg );
Set<String> collections = em.getCollections( entity );
// If your application doesn't have any e
if ( ( collections == null ) || collections.isEmpty() ) {
return;
}
for ( String collectionName : collections ) {
if ( collectionName.equals( collection ) ) {
jg.writeFieldName( collectionName );
jg.writeStartArray();
//is 100000 an arbitary number?
Results collectionMembers =
em.getCollection( entity, collectionName, null, 100000, Level.IDS, false );
List<UUID> entityIds = collectionMembers.getIds();
if ( ( entityIds != null ) && !entityIds.isEmpty() ) {
for ( UUID childEntityUUID : entityIds ) {
jg.writeObject( childEntityUUID.toString() );
}
}
// End collection array.
jg.writeEndArray();
}
}
}
@Override
public void serialize(LngLatAlt value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
jgen.writeStartArray();
jgen.writeNumber(value.getLongitude());
jgen.writeNumber(value.getLatitude());
if (value.hasAltitude()) {
jgen.writeNumber(value.getAltitude());
for (double d : value.getAdditionalElements()) {
jgen.writeNumber(d);
}
}
jgen.writeEndArray();
}
@Override
public void serialize(List<User> value, JsonGenerator jgen,
SerializerProvider provider) throws IOException,
JsonProcessingException {
jgen.writeStartArray();
for (User user : value) {
jgen.writeStartObject();
jgen.writeObjectField("user", user);
jgen.writeEndObject();
}
jgen.writeEndArray();
}
@Override
public int serializeOnJacksonAsString(Bean81T object, JsonGenerator jacksonSerializer) throws
Exception {
jacksonSerializer.writeStartObject();
int fieldCount=0;
// Serialized Field:
// field id (mapped with "id")
jacksonSerializer.writeStringField("id", PrimitiveUtils.writeLong(object.id));
// field valueByteArray (mapped with "valueByteArray")
if (object.valueByteArray!=null) {
fieldCount++;
jacksonSerializer.writeBinaryField("valueByteArray", object.valueByteArray);
}
// field valueInteger (mapped with "valueInteger")
if (object.valueInteger!=null) {
jacksonSerializer.writeStringField("valueInteger", PrimitiveUtils.writeInteger(object.valueInteger));
}
// field valueMapStringInteger (mapped with "valueMapStringInteger")
if (object.valueMapStringInteger!=null) {
fieldCount++;
// write wrapper tag
if (object.valueMapStringInteger.size()>0) {
jacksonSerializer.writeFieldName("valueMapStringInteger");
jacksonSerializer.writeStartArray();
for (Map.Entry<String, Integer> item: object.valueMapStringInteger.entrySet()) {
jacksonSerializer.writeStartObject();
jacksonSerializer.writeStringField("key", item.getKey());
if (item.getValue()==null) {
jacksonSerializer.writeStringField("value", "null");
} else {
jacksonSerializer.writeStringField("value", PrimitiveUtils.writeInteger(item.getValue()));
}
jacksonSerializer.writeEndObject();
}
jacksonSerializer.writeEndArray();
} else {
jacksonSerializer.writeStringField("valueMapStringInteger", "null");
}
}
jacksonSerializer.writeEndObject();
return fieldCount;
}