Maybe this is useful to someone:
Try this: JSJsonParser parseStream: '{lhs: "1 Brazil real",rhs: "0.592768 U.S. dollars",error: "",icc: true}' readStream it can't parse that, so.. ...patch it with this: JSJsonParser#parseProperty | name value | name := self parsePropertyName. value := self parseValue. ^ self createProperty: name with: value. JSJsonParser#parsePropertyName | result | result := WriteStream on: String new. [ stream atEnd or: [ stream peek = $: ] ] whileFalse: [ result nextPut: self parseCharacter ]. ^ self expect: ':'; createString: result contents then you get it working like this: a Dictionary('error'->'' 'icc'->true 'lhs'->'1 Brazil real' 'rhs'->'0.592768 U.S. dollars' ) _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
The problem is that what you parse is not valid JSON, check the standard on json.org.
Lukas On Monday, 12 September 2011, Sebastian Sastre <[hidden email]> wrote: > Maybe this is useful to someone: > Try this: > JSJsonParser parseStream: '{lhs: "1 Brazil real",rhs: "0.592768 U.S. dollars",error: "",icc: true}' readStream > it can't parse that, so.. > ...patch it with this: > JSJsonParser#parseProperty > | name value | > name := self parsePropertyName. > value := self parseValue. > ^ self createProperty: name with: value. > JSJsonParser#parsePropertyName > | result | > result := WriteStream on: String new. > [ stream atEnd or: [ stream peek = $: ] ] > whileFalse: [ result nextPut: self parseCharacter ]. > ^ self expect: ':'; createString: result contents > then you get it working like this: > a Dictionary('error'->'' 'icc'->true 'lhs'->'1 Brazil real' 'rhs'->'0.592768 U.S. dollars' ) > sebastian <http://about.me/sebastianconcept> > o/ > > > -- Lukas Renggli www.lukas-renggli.ch _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by sebastianconcept@gmail.co
2011/9/12 Sebastian Sastre <[hidden email]>:
> Maybe this is useful to someone: > Try this: > JSJsonParser parseStream: '{lhs: "1 Brazil real",rhs: "0.592768 U.S. > dollars",error: "",icc: true}' readStream > it can't parse that, so.. Because it's not JSON. JSON keys need to be quoted [1] [1] http://json.org/ Cheers Philippe _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Lukas, Phillipe, sure? I see it says: "...A value can be a string in double quotes, or a number, or true or false or null, or an object or an array..." which translates to: 1. A value, like when value means something different than a key 2. can, like when can means something more flexible than a has to I am missing something? On Sep 12, 2011, at 2:28 PM, Philippe Marschall wrote:
_______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In JSON keys in an object can only be strings, but your example has no quotes around them, thus, it’s not valid JSON. Instead, try, JSJsonParser parse: '{"lhs": "1 Brazil real","rhs": "0.592768 U.S. dollars","error": "","icc": true}' Dictionary ('error' -> '' 'lhs' -> '1 Brazil real' 'rhs' -> '0.592768 U.S. dollars' 'icc' -> true) HTH, -Boris From: [hidden email] [mailto:[hidden email]] On Behalf Of Sebastian Sastre Lukas, Phillipe, sure? I see it says: "...A value can be a string in double quotes, or a number, or true or false or null, or an object or an array..." which translates to: 1. A value, like when value means something different than a key 2. can, like when can means something more flexible than a has to I am missing something? On Sep 12, 2011, at 2:28 PM, Philippe Marschall wrote: 2011/9/12 Sebastian Sastre <[hidden email]>: Maybe this is useful to someone:
_______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by sebastianconcept@gmail.co
ok, it seems it actually needs double quotes:
http://json.org/example.html funny thing... I'm seeing "invalid" json being used all around not to mention that the source I've shown, came from Google itself Hmmm On Sep 12, 2011, at 2:46 PM, Sebastian Sastre wrote:
_______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Sebastian, You must be confusing JavaScript with JSON, where the latter is only a subset of the former to serve as a data-interchange format. http://seattlesoftware.wordpress.com/2008/01/08/javascript-vs-json/ HTH, -Boris From: [hidden email] [mailto:[hidden email]] On Behalf Of Sebastian Sastre ok, it seems it actually needs double quotes: funny thing... I'm seeing "invalid" json being used all around not to mention that the source I've shown, came from Google itself Hmmm On Sep 12, 2011, at 2:46 PM, Sebastian Sastre wrote: Lukas, Phillipe, sure? I see it says: "...A value can be a string in double quotes, or a number, or true or false or null, or an object or an array..." which translates to: 1. A value, like when value means something different than a key 2. can, like when can means something more flexible than a has to I am missing something? On Sep 12, 2011, at 2:28 PM, Philippe Marschall wrote: 2011/9/12 Sebastian Sastre <[hidden email]>: Maybe this is useful to someone:
_______________________________________________ _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Free forum by Nabble | Edit this page |