[
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/[email protected]/msg14257.html
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira