Uploaded image for project: 'Apache Avro'
  1. Apache Avro
  2. AVRO-905

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

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • None
    • 1.6.0
    • java
    • None
    • Reviewed

    Description

      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; }

      Attachments

        1. AVRO-905.patch
          3 kB
          Doug Cutting
        2. AVRO-905.patch
          2 kB
          Doug Cutting
        3. AVRO-905.patch
          1 kB
          Doug Cutting

        Activity

          People

            cutting Doug Cutting
            yangyangyyy Yang Yang
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: