Hi, This is from JSON RFC (http://www.ietf.org/rfc/rfc4627.txt): "A JSON text is a serialized object or array."
I checked with another parser (http://www.jsonlint.com) and it fails too when given just JSON value: "syntax error, unexpected TNUMBER, expecting '{' or '[' at line 1" So perhaps a better error message is a proper fix here? Cheers Joni On 1 joulu, 05:22, Ross Mellgren <[email protected]> wrote: > On review board:http://reviewboard.liftweb.net/r/131/ > > I did run across another infelicity when writing the test -- apparently > JsonParser crashes when given a scalar value, as opposed to an array or > object: > > scala> parse("\"foobar\"") > net.liftweb.json.JsonParser$ParseException: unexpected null > Near: "foobar > at net.liftweb.json.JsonParser$Parser.fail(JsonParser.scala:166) > at net.liftweb.json.JsonParser$ValStack.peek(JsonParser.scala:153) > at net.liftweb.json.JsonParser$.newValue$1(JsonParser.scala:110) > at net.liftweb.json.JsonParser$.parse0(JsonParser.scala:125) > at net.liftweb.json.JsonParser$.parse(JsonParser.s... > > I'm not sure if it should work, but even if it shouldn't support that the > error case should probably give a better message. Joni/et al? > > -Ross > > On Nov 30, 2009, at 8:33 PM, harryh wrote: > > > Done: > > >http://github.com/dpp/liftweb/issues/#issue/214 > > > On Nov 30, 6:33 pm, Ross Mellgren <[email protected]> wrote: > >> If you file an issue on github I'll write up a patch for you tonight. > > >> -Ross > > >> On Nov 30, 2009, at 6:30 PM, harryh wrote: > > >>> Yes, what Ross said. Further, taking a look at JsonParser.scala the > >>> bug appears to be on line ~202 where there are a couple of missing > >>> escape sequences: \/ as well as \f. > > >>> -harryh > > >>> On Nov 30, 6:20 pm, Ross Mellgren <[email protected]> wrote: > >>>> He's double escaping so that scala's string interpretation will put a > >>>> raw \ in there, so that it's an escaped forward slash (\/) to the > >>>> JSON > >>>> parson, as I understand it. The output should be either invalid > >>>> escape > >>>> or forward slash, but not backslash unless the input was \\. > > >>>> -Ross > > >>>> On Nov 30, 2009, at 6:18 PM, Peter Robinett wrote: > > >>>>> Harry, I think you're double-escaping the slash. This works: > >>>>> scala> import net.liftweb.json._ > >>>>> scala> val s1 = "{ \"id\": \"America/New_York\" }" > >>>>> s1: java.lang.String = { "id": "America/New_York" } > > >>>>> scala> JsonParser.parse(s1) > >>>>> res0: net.liftweb.json.JsonAST.JValue = JObject(List(JField > >>>>> (id,JString > >>>>> (America/New_York)))) > > >>>>> Peter Robinett > > >>>>> On Nov 30, 2:16 pm, harryh <[email protected]> wrote: > >>>>>> scala> import net.liftweb.json._ > >>>>>> scala> val s2 = "{ \"id\": \"America\\/New_York\" }" > >>>>>> s2: java.lang.String = { "id": "America\/New_York" } > > >>>>>> scala> JsonParser.parse(s2) > >>>>>> res1: net.liftweb.json.JsonAST.JValue = JObject(List(JField > >>>>>> (id,JString > >>>>>> (America\New_York)))) > > >>>>>> It should be America/New_York but for some reason getting a \ > >>>>>> instead > >>>>>> of a / > > >>>>>> -harryh > > >>>>> -- > > >>>>> You received this message because you are subscribed to the Google > >>>>> Groups "Lift" group. > >>>>> To post to this group, send email to [email protected]. > >>>>> To unsubscribe from this group, send email to > >>>>> [email protected] > >>>>> . > >>>>> For more options, visit this group > >>>>> athttp://groups.google.com/group/liftweb?hl=en > >>>>> . > > >>> -- > > >>> You received this message because you are subscribed to the Google > >>> Groups "Lift" group. > >>> To post to this group, send email to [email protected]. > >>> To unsubscribe from this group, send email to > >>> [email protected] > >>> . > >>> For more options, visit this group > >>> athttp://groups.google.com/group/liftweb?hl=en > >>> . > > > -- > > > You received this message because you are subscribed to the Google Groups > > "Lift" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group > > athttp://groups.google.com/group/liftweb?hl=en. -- You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/liftweb?hl=en.
