2010-12-13 4 views
0

Je stocke cette {background:"default.jpg"} dans la base de données dans le domaine des tables que je prends les données de champs de table et makint le json par json_encode tout en encodant ce json aussi obtenir codé et il n'est pas valide json alors comment devrais-je encoder ces json.json encoder en php

{"id_session":"c72b0581e7675b596a7651a7bb906438","gibid":"54","name":"Market Place","type":"S","num_owners":"0","inner_template":"","inner_data":"{background:\"default.jpg\"}","outer_template":"","o 

il est d'ajouter les barres obliques comment devrais-je obtenir le valide json.

merci.

+0

echo json_decode ('{background: "default.jpg"}', true); pourquoi ne pas retourner le tableau? – XMen

Répondre

2
  1. Ne pas stocker JSON dans la base de données, les stocker dans un format neutre, comme des colonnes clé/valeur. Ou:
  2. Décoder le JSON, le fusionner dans le tableau à coder, puis le coder.

    $data = array('id' => ...); 
    $data['inner_data'] = json_decode($databaseJson, true); 
    json_encode($data); 
    
+0

echo json_decode ('{background: "default.jpg"}', true); pourquoi ne pas retourner le tableau? – XMen

+1

Parce que le '{background:" default.jpg "}' n'est pas un JSON valide. Voir http://www.jsonlint.com/. La forme valide est '{" background ":" default.jpg "}' – Mchl

+0

Merci Mchl, pourquoi ne devrions-nous pas stocker json dans la base de données, et @deceze vous parlez de format neutre dans la clé et la valeur qu'est-ce s'il vous plaît expliquer? – XMen

0

Vous avez donc une chaîne JSON dans la base de données et vous obtenez hors de celui-ci et faire un json_ecnode sur ir à nouveau? Pour php, vous ne faites qu'encoder une chaîne de caractères (c'est la raison pour laquelle les barres obliques inverses sur les guillemets proviennent).

Mais pour obtenir ce que vous voulez réellement, vous pouvez d'abord décoder la chaîne JSON de la base de données, puis l'encoder avec le reste de vos données.

+0

echo json_decode ('{background: "default.jpg"}', true); pourquoi ne pas retourner le tableau? – XMen

+0

Voir le commentaire de 'Mchl sur la réponse de Deceze. Il a raison avec son commentaire. – enricog