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

Jonathan Ellis commented on CASSANDRA-2780:
-------------------------------------------

Tatu's feedback:

{quote}
The best way to handle escaping/quoting is to use tools that deal with the 
format -- this patch only handles escaping of double-quotes, but similar 
problems would occur with linefeeds, or backslashes.

So using a JSON generator / writer would make sense, if project uses one 
already? If not, I would recommend adding handling of backslashes and white 
space other than space (char codes below 32), as those must be escaped in 
String values and keys.

Also: if unquoted keys were required (not valid JSON, but there's lots of data 
like that...), Jackson can be configured to accept unquoted field names. That 
has its own potential issues (whether escaping is allowed, which characters are 
legal in unquotes names), but appears to work well enough that users haven't 
complained.
{quote}

> sstable2json needs to escape quotes
> -----------------------------------
>
>                 Key: CASSANDRA-2780
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2780
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 0.8.0
>            Reporter: Timo Nentwig
>            Assignee: Pavel Yaskevich
>            Priority: Minor
>             Fix For: 0.8.2
>
>         Attachments: CASSANDRA-2780.patch
>
>
> [default@foo] set transactions[test][data]='{"foo":"bar"}'; 
> $ cat /tmp/json
> {
> "74657374": [["data", "{"foo":"bar"}", 1308209845388000]]
> }
> $ ./json2sstable -s -c transactions -K foo /tmp/json /tmp/ss-g-1-Data.db
> Counting keys to import, please wait... (NOTE: to skip this use -n <num_keys>)
> org.codehaus.jackson.JsonParseException: Unexpected character ('f' (code 
> 102)): was expecting comma to separate ARRAY entries
>  at [Source: /tmp/json2; line: 2, column: 27]
>       at org.codehaus.jackson.JsonParser._constructError(JsonParser.java:929)
>       at 
> org.codehaus.jackson.impl.JsonParserBase._reportError(JsonParserBase.java:632)
>       at 
> org.codehaus.jackson.impl.JsonParserBase._reportUnexpectedChar(JsonParserBase.java:565)
>       at 
> org.codehaus.jackson.impl.Utf8StreamParser.nextToken(Utf8StreamParser.java:128)
>       at 
> org.codehaus.jackson.impl.JsonParserBase.skipChildren(JsonParserBase.java:263)
>       at 
> org.apache.cassandra.tools.SSTableImport.importSorted(SSTableImport.java:328)
>       at 
> org.apache.cassandra.tools.SSTableImport.importJson(SSTableImport.java:252)
>       at org.apache.cassandra.tools.SSTableImport.main(SSTableImport.java:476)
> ERROR: Unexpected character ('f' (code 102)): was expecting comma to separate 
> ARRAY entries
>  at [Source: /tmp/json2; line: 2, column: 27]
> http://www.mail-archive.com/user@cassandra.apache.org/msg14257.html

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

        

Reply via email to