Pages :
(reprise du message précédent)

Bonsoir à toutes et à tous.

@ tm : J'ai ajouté dans mon httpd.conf, le "AddType application/json .json" que je n'avais pas au préalable.
Je n'ai toujours pas mis de header dans l'exemple donné par ledisciple1.
Et maintenant, la conversion se fait bien.

Ce que je ne comprends pas, c'est la raison de ce "addtype" pour que la conversion se fasse.
Et ce que je ne comprends pas non plus, c'est le fait d'avoir un caractère au format unicode "\u00e8" dans le fichier en entrée.

C'est peut-être bête comme questions, mais je ne comprends pas la raison de cette contrainte que je n'arrive pas à justifier.

A moins de me tromper, le json sert à la sérialisation des données et non à la codification selon une police de caractères.

@ benji : tu n'as rien dans le httpd.conf. As-tu vérifié le fichier ".htaccess" ?
Et tu n'as pas non plus quelque part, la commande "header('Content-type: application/json');" ?
Et n'aurais-tu pas aussi une "extension json" ?

@+
Modifié par tournikoti (23 Oct 2013 - 01:08)
Re,

Quand tu appelles un fichier .php, la réponse est à priori text/html.
Sauf si tu spécifies précisément un type dans le header.
Par exemple : "header('Content-Type: application/json');"

L'instruction "AddType application/json .json" destinée à Apache, ne fait qu'ajouter automatiquement en type en fonction d'une extension de fichier. Dans le processus présent, il n'y a aucun fichier .json...

J'ai mis un petit test en ligne.
Résultats visibles via les outils de développement...

tm
tournikoti a écrit :
Et ce que je ne comprends pas non plus, c'est le fait d'avoir un caractère au format unicode "\u00e8" dans le fichier en entrée.

C'est a priori une possibilité de format json. Faudra demander aux développeur de php le pourquoi Smiley cligne
D’ailleurs avec la version php5.5 il y a une option pour ne pas convertir.

Moi aussi j'ai mis mon test en ligne : http://b1nj.fr/tests/ajax-json-utf8/test.php

Donc pour mon test (testé sur plusieurs serveur), pas besoin de mettre de Content-type: application/json

Je crois que je vais en rester là sur l'explication. De toute façon vu que c'est du json qui est retourné autant mettre le bon content-type.

@tm™ j'ai vu que ton code json provient d'une timeline. Avec mon plugin jquery pas besoin de Json timeline jquery Smiley lol
Modifié par benj (23 Oct 2013 - 15:36)
benj a écrit :
@tm™ j'ai vu que ton code json provient d'une timeline. Avec mon plugin jquery pas besoin de Json timeline jquery Smiley lol

Cool !
J'ai pris le premier .json qui me tombait sous la main...
Je bookmarke pour mon prochain rétroplanning ! Smiley smile

La bonne soirée.
tm
Bonjour à toutes et à tous.

Et bien, en fait, dans mes derniers messages, j'ai raconté une grosse connerie (pas tant que cela).
J'aurai dû faire une recherche sous google sur le critère "SyntaxError: JSON.parse: unexpected end of data". Et voici le lien explicatif de cette anomalie.

Dans mon test, j'ai géré correctement le (readyState == 4) et le (status == 200) comme cela n'a pas été fait dans l'exemple donné qui a provoqué l'erreur sur le JSON.parse().

D'où j'ai cru que le problème venait de la mauvaise codification du fichier en entrée.
N'empêche que je n'ai pas compris l'intérêt de mettre un "header" comme il a été suggéré, ni du "addtype application/json .json".

@+
Pages :