You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jonathan Ellis (JIRA)" <ji...@apache.org> on 2011/06/17 01:39:47 UTC

[jira] [Commented] (CASSANDRA-2780) sstable2json needs to escape quotes

    [ 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