@gmail.com> wrote: > On Jun 7, 11:00 am, Boris Granveaud <bgran...@gmail.com> wrote: > > Hi, > > > It seems that JSONParser doesn't like some unicode characters if they > > are not escaped with \uxxxx: > > > public class Test implements EntryPoint { > > public void onModuleLoad() { > > for (char c = 0x2000; c < 0x2050; c++) { > > String str = "{\"string\":\"" + c + "\"}"; > > try { > > JSONValue json = JSONParser.parse(str); > > } catch (Exception e) { > > System.out.println("JSON parse error char=" + > > Integer.toHexString((int) c)); > > } > > } > > } > > > } > > > In GWT 2.0.3 emulator, I've got the following results: > > > - Chrome 5.0 and FF 3.6: error with character 0x2028 and 0x2029 > > - IE 8.0: no error > > > It works if I escape the characters with \u2028 and \u2029. > > This is because GWT for now uses eval() to "parse" JSON, and U+2028 > and U+2029 are line terminators in JavaScript (per spec). > Quoting ECMASCript 5, which defines JSON.parse: > """JSON uses a more limited set of white space characters than > WhiteSpace and allows Unicode code points U+2028 and U+2029 to > directly appear in JSONString literals without using an escape > sequence.""" > > > I'm using Jackson on server-side to generate the JSON string which is > > sent to my GWT application and it doesn't escape by default these > > characters. As a workaround, I've implemented a Jackson custom > > serializer. > > Jackson is right, as these aren't special characters in JSON, but on > the other hand, it could escape them to cope with web apps that eval() > the result instead of JSON.parse()ing it.
if someone is interested by the workaround, it is now on Jackson wiki: http://wiki.fasterxml.com/JacksonSampleQuoteChars there are also several issues regarding escaping in JIRA: http://jira.codehaus.org/browse/JACKSON-102 http://jira.codehaus.org/browse/JACKSON-262 http://jira.codehaus.org/browse/JACKSON-219 Boris. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-tool...@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.