make default separator in jsonEncoder to be "\n" instead of " "
---------------------------------------------------------------

                 Key: AVRO-905
                 URL: https://issues.apache.org/jira/browse/AVRO-905
             Project: Avro
          Issue Type: Improvement
            Reporter: Yang Yang
            Priority: Minor


from mailing list:

if I do

writer = new SpecificDatumWriter<SpecificRecord>(schema);
encoder = EncoderFactory.get().jsonEncoder(schema, ostream);

writer.write(my_specific_record, encoder);
writer.write(my_specific_record.encoder);


it adds a space " " between the 2 records, I guess for separation.
is it possible to remove that? or changing that to "\n" is much better



Doug said:
......
or you could pass a JsonGenerator to EncoderFactory#jsonEncoder a
MinimalPrettyPrinter whose rootValueSeparator is set to "\n".

http://jackson.codehaus.org/1.8.4/javadoc/org/codehaus/jackson/util/MinimalPrettyPrinter.html


+++ lang/java/avro/src/main/java/org/apache/avro/io/JsonEncoder.java
(working copy)
@@ -31,6 +31,7 @@
 import org.codehaus.jackson.JsonEncoding;
 import org.codehaus.jackson.JsonFactory;
 import org.codehaus.jackson.JsonGenerator;
+import org.codehaus.jackson.util.MinimalPrettyPrinter;

 /** An {@link Encoder} for Avro's JSON data encoding.
 * </p>
@@ -67,11 +68,17 @@
    }
  }

+  // by default, one object per line
  private static JsonGenerator getJsonGenerator(OutputStream out)
      throws IOException {
    if (null == out)
      throw new NullPointerException("OutputStream cannot be null");
-    return new JsonFactory().createJsonGenerator(out, JsonEncoding.UTF8);
+    JsonGenerator g
+      = new JsonFactory().createJsonGenerator(out, JsonEncoding.UTF8);
+    MinimalPrettyPrinter pp = new MinimalPrettyPrinter();
+    pp.setRootValueSeparator("\n");
+    g.setPrettyPrinter(pp);
+    return g;
  }


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to