avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Doug Cutting (Updated) (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (AVRO-905) make default separator in jsonEncoder to be "\n" instead of " "
Date Tue, 04 Oct 2011 20:19:34 GMT

     [ https://issues.apache.org/jira/browse/AVRO-905?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Doug Cutting updated AVRO-905:
------------------------------

    Fix Version/s: 1.6.0
         Assignee: Doug Cutting
           Status: Patch Available  (was: Open)

I'll commit this soon unless there are objections.
                
> 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
>            Assignee: Doug Cutting
>            Priority: Minor
>             Fix For: 1.6.0
>
>         Attachments: AVRO-905.patch, AVRO-905.patch
>
>
> 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

        

Mime
View raw message