Bonjour,

Je cherche à enregistrer dans un fichier texte un ensemble de données organisées suivant la notation JSON.
J'utilise un tableau associatif pour organiser mes données suivant la structure voulue puis me sert de json_encode() pour produire la chaine JSON.

Le problème est que des objets sérialisés font parfois partie des données à sauvegarder.
En fait json_encode() ne travaille que sur des chaines encodées en UTF-8 alors que serialise fabrique une chaine binaire, qui s'approche d'UTF-8 dans certains cas mais dans d'autres non.

Dans cette situation, json_encode se contente de passer à NULL toute chaine renvoyée par serialize().

J'ai pensé à utiliser le subterfuge suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
$data = array(
  "key1" => "string_utf8_1",
  "key2" => utf8_encode(serialize($mon_obj))
);
 
$str = json_encode($data);
 
$data_decode = json_decode($str, true);
 
$mon_obj_decode = unserialize(utf8_decode($data["key2"]));
Mais les modifications faites à la chane par utf8_encode sont trop profondes pour que la dé-sérialisation fonctionne.

Le format JSON est obligatoire et je suis un peu bloqué, quelqu'un saurait-il comment je peux me sortir de ce mauvais pas?

Merci par avance.