2010-04-08 15 views
0

Le titre indique le plus:GQL: Je stocke JSON dans le stock de données. Tout json est converti en entités html, comment éviter cela?

Je stocke JSON dans le stock de données. Tout json est converti en entités html, comment puis-je éviter cela?

originale J'ai eu

myJson = db.StringProperty()

il se plaignait JSON j'avais été à long et StringProperty avait une limite d'environ 500 caractères. Suffisant d'utiliser TextProperty à la place.

Il introduit sans problème, mais maintenant myJson ressemble à ceci quand je vient le chercher à partir de la base de données:

{ "timeUnit": "14", "taskCounter": "0", "dependencyCounter": "0", "tasks": [], "dependencies": []} 

Toute sugestions?

Edit:

code:

Modèle:

the_json = db.TextProperty() 

Enregistrement:

myObjectKey = request.POST["myKey"] 
myJson = request.POST["myJson"] 
element = myObject.get(myObjectkey) 
logging.error(" -------------------------") 
element.the_json = myJson 
element.put() 

Chargement:

params = {} 
myObjectKey = request.POST["myKey"] 
element = myObject.get(myObjectKey) 
params['the_json'] = myObject.the_json 
return respond(request, "ajax/load.html",params) #this function is a redirect to shortcuts.render_to_response 

Pour ajax j'utilise jquery pour gérer tout. Le JSON est une chaîne normale sans '\ n':

json_in_the_js = '{ "timeUnit": ...'; 
+0

Je sais à propos de tampon de protocole et c'est vraiment sympa, mais j'ai vraiment besoin d'utiliser json :) (juste pour éviter les réponses me disant de changer de tampon de protocole) – fmsf

+0

J'ai remplacé les noms des variables, s'il y a une petite erreur sintatique c'est dû à la traduction c'était en portugais. – fmsf

Répondre

0

Le problème ne se trouvait pas dans le magasin de données. Il était dans le fait que j'utilisais un modèle pour écrire le JSON dans

Je généré la réponse à la main avec:.

response = HttpResponse(myObject.the_json) 

Et il a très bien fonctionné :)

+0

ah ... votre langage de template était "auto escape". la plupart des langages de modèle ont le moyen de désactiver cela au niveau du bloc –

3

Comment allez-vous chercher et afficher le JSON? Ce n'est certainement pas un problème avec la façon dont il est stocké dans le magasin de données, mais plutôt avec la façon dont il est affiché, ou peut-être comment il est reçu. Nous devons être en mesure de voir tout le code qui le gère pour dire lequel.