You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Doug Cutting (JIRA)" <ji...@apache.org> on 2011/07/14 21:04:01 UTC

[jira] [Commented] (AVRO-860) Invalid JSON when printing out records with unicode

    [ https://issues.apache.org/jira/browse/AVRO-860?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13065467#comment-13065467 ] 

Doug Cutting commented on AVRO-860:
-----------------------------------

The problem looks to be in GenericData#writeEscapedString(), added in AVRO-713.

> Invalid JSON when printing out records with unicode
> ---------------------------------------------------
>
>                 Key: AVRO-860
>                 URL: https://issues.apache.org/jira/browse/AVRO-860
>             Project: Avro
>          Issue Type: Bug
>          Components: java
>    Affects Versions: 1.5.1
>            Reporter: Miki Tebeka
>              Labels: java, json, unicode
>
> I have an avro file, that when printed returns invalid JSON.
> The code for iterating and printing is:
> {code}
>             DatumReader<GenericRecord> reader = new GenericDatumReader<GenericRecord>();
>             DataFileReader<GenericRecord> dataFileReader =
>                 new DataFileReader<GenericRecord>(data, reader);
>             while (dataFileReader.hasNext()) {
>                 System.out.println(dataFileReader.next().toString());
>             }
> {code}
> and the relevant JSON snippet is
> {code}
>     "description": "Move™ offers advertisers the opportunity to deliver messages to consumers at a time when consumers are making the biggest purchases of their lives\uMOVE™ OFFERS ADVERTISERS THE OPPORTUNITY TO DELIVER MESSAGES TO CONSUMERS AT A TIME WHEN CONSUMERS ARE MAKING THE BIGGEST PURCHASES OF THEIR LIVES—OR REMODELING, REDECORATING AND MAINTAINING THEIR MOST IMPORTANT ASSETS.or remodeling, redecorating and maintaining their most important assets.",
> {code}
> (The \uMOVE is the problematic part).
> However if I do:
> {code}
>                 GenericRecord record = dataFileReader.next();
>                 Utf8 desc = (Utf8)record.get("description");
>                 System.out.println(desc);
> {code}
> Then I get
> {code}
> Move™ offers advertisers the opportunity to deliver messages to consumers at a time when consumers are making the biggest purchases of their lives—or remodeling, redecorating and maintaining their most important assets.
> {code}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira