JSON erreur de syntaxe: 'nombre inattendu" ou " JSON.parse::', ' or '}' après la valeur de la propriété dans l'objet"
Je reçois cette réponse d'une requête POST à l'aide de $.ajax():
{"command": 6,"log_size":50,"log":[
{"type": 30,"tag": "*NETEVENT*","sensors": "0D","ti": 1047161877,"to": 0},
{"type": 30,"tag": " __START__","sensors": "00","ti": 0000011410,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0A","ti": 0000011411,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0B","ti": 0000011411,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0D","ti": 0000011412,"to": 0},
{"type": 30,"tag": " __START__","sensors": "00","ti": 1047215799,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0A","ti": 1047215799,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0B","ti": 1047215800,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0D","ti": 1047215800,"to": 0},
{"type": 30,"tag": " __START__","sensors": "00","ti": 1047217510,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0B","ti": 1047217511,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0D","ti": 1047217511,"to": 0},
{"type": 30,"tag": " __START__","sensors": "00","ti": 1047217956,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0B","ti": 1047217957,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0D","ti": 1047217957,"to": 0},
{"type": 30,"tag": " __START__","sensors": "00","ti": 1047218051,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0A","ti": 1047218051,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0B","ti": 1047218052,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0D","ti": 1047218052,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0D","ti": 0000002598,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0B","ti": 1047068795,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0D","ti": 1047068796,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0A","ti": 1047071223,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0B","ti": 1047071224,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0D","ti": 1047071225,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0A","ti": 0000000010,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0D","ti": 0000000012,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0C","ti": 1047130533,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0A","ti": 0000000026,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0A","ti": 0000000180,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0B","ti": 0000000206,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "09","ti": 0000000212,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "08","ti": 0000000383,"to": 0},
{"type": 30,"tag": " __START__","sensors": "00","ti": 0000001562,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0A","ti": 0000001563,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0B","ti": 0000001564,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0D","ti": 0000001564,"to": 0},
{"type": 30,"tag": " __START__","sensors": "00","ti": 1047159660,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0A","ti": 1047159660,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0B","ti": 1047159661,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0D","ti": 1047159662,"to": 0},
{"type": 30,"tag": " __START__","sensors": "00","ti": 1047160593,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0B","ti": 1047160593,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0D","ti": 1047160594,"to": 0},
{"type": 30,"tag": " __START__","sensors": "00","ti": 1047161631,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0A","ti": 1047161631,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0B","ti": 1047161632,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0D","ti": 1047161632,"to": 0},
{"type": 30,"tag": " __START__","sensors": "00","ti": 1047161875,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0B","ti": 1047161876,"to": 0}
],
"response":"ok"}
Pour IE fonctionne très bien, en Chrome apparaît "Syntax error: unexpected number"
et dans Firefox le message est "SyntaxError: JSON.parse: expected ',' or '}' after property value in object"
En ligne différents JSON analyseurs et les validateurs le format de la réponse semble être OK, mais dans firefox et chrome fonctionne pas.
Une idée de pourquoi cela se produit?
J'obtiens une erreur de validation sur la valeur
ceci pouvez-vous être utiles lors de la validation de chaîne json
0000000206
avec la première JSON validateur trouvé sur Google.ceci pouvez-vous être utiles lors de la validation de chaîne json
OriginalL'auteur gustavovelascoh | 2013-03-08
Vous devez vous connecter pour publier un commentaire.
Un nombre ne peut pas commencer par un pas significatif
0
.Ce n'est pas valide :
"ti": 0000011410
De JSON.org :
Vous devrait résoudre le problème à la source, mais si vous ne pouvez pas, en supposant que votre JSON est toujours semblable à celui-ci (pas de nombres en chaînes de caractères), alors vous pourriez probablement le fixer avec une regex :
Vous ne pouvez même pas du mal
eval
parce que"0000011410"
serait analysée comme une octal :sorties
Ce qui explique sans doute pourquoi il a été considéré comme plus sûr d'interdire les numéros commençant par non significative
0
en JSON.Grande réponse. la peine de mentionner que octal littéraux sont également interdites en JavaScript en mode strict. Vous obtiendrez l'erreur suivante dans le JavaScript
SyntaxError: Octal literals are not allowed in strict mode.
OriginalL'auteur Denys Séguret