I guess the question is... if a variable is not a string or int, should it be json.encoded by default?
On Feb 8, 9:45 am, Jonathan Lundell <[email protected]> wrote: > On Feb 8, 2011, at 3:56 AM, Manuele Pesenti wrote: > > > > > I'm trying pass some variables from one one controller/function to another > > using the command: > > > URL(request.application, 'myControler', 'myFunction', > > vars=dict(myVar=myVar)) > > > but when I call request.vars.myVar I get a string type object even if myVar > > was a dictionary. I cannot bypass this problem using the json library > > because it causes an early return of the function. I tried: > > > import gluon.contrib.simplejson as sj > > > myVar = request.vars.myVar > > myVar = sj.loads(myVar) > > > and after that any command are not executed... any suggestion? > > request.vars represents the query string of the URL to be generated, which > must itself be a string. If you want to pass something else in the query > string, it's up to you to make a string of it. You could pass a json-encoded > myVar, for example. URL won't encode it for you, because it has no way of > knowing what kind of encoding the recipient expects.

