discomarathon / google-gson

Automatically exported from code.google.com/p/google-gson
0 stars 0 forks source link

Can't parse backslash #264

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?

String str = "{message:\":-\\\"}";
Map<String,String> map = gson.fromJson(str,new TypeToken<Map<String, String>>() 
{}.getType());

What is the expected output? What do you see instead?

I expect Map<String,String> (size = 1): key = "message", value = ":-\"

Instead:
"Exception in thread "main" com.google.gson.JsonParseException: Failed parsing 
JSON source: java.io.StringReader@911f71 to Json
    at com.google.gson.JsonParser.parse(JsonParser.java:59)
    at com.google.gson.Gson.fromJson(Gson.java:443)
    at com.google.gson.Gson.fromJson(Gson.java:396)
    at json.Main.main(Main.java:22)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:115)
Caused by: com.google.gson.ParseException: Encountered " "\"" "\" "" at line 1, 
column 10.
Was expecting one of:
    <DIGITS> ...
    "null" ...
    "NaN" ...
    "Infinity" ...
    <BOOLEAN> ...
    <SINGLE_QUOTE_LITERAL> ...
    <DOUBLE_QUOTE_LITERAL> ...
    "{" ...
    "[" ...
    "-" ...

    at com.google.gson.JsonParserJavacc.generateParseException(JsonParserJavacc.java:705)
    at com.google.gson.JsonParserJavacc.jj_consume_token(JsonParserJavacc.java:587)
    at com.google.gson.JsonParserJavacc.JsonValue(JsonParserJavacc.java:229)
    at com.google.gson.JsonParserJavacc.Pair(JsonParserJavacc.java:112)
    at com.google.gson.JsonParserJavacc.JsonObject(JsonParserJavacc.java:76)
    at com.google.gson.JsonParserJavacc.parse(JsonParserJavacc.java:36)
    at com.google.gson.JsonParser.parse(JsonParser.java:54)
    ... 8 more
"

What version of the product are you using? On what operating system?

1.5, windows7 - 32 bit

Please provide any additional information below.

If I parse this string with additional two backslashes - it works, but there is 
:\\ in value..

Original issue reported on code.google.com by Dmitry.T...@gmail.com on 18 Nov 2010 at 11:18

GoogleCodeExporter commented 9 years ago
Does it work with the latest code from SVN? That has a new parser.

Original comment by limpbizkit on 18 Nov 2010 at 4:21

GoogleCodeExporter commented 9 years ago
Fixed in GSON 1.6. See StringTest#testEscapedBackslashInStringDeserialization.

Original comment by limpbizkit on 24 Jan 2011 at 10:38