[EDIT] je les données plus tard acteur de modification et il a été réfléchissais dans l'objet lors de l'expansion, je vais accepter ma réponse quand je peux. [/ EDIT]JSON.parse() retourne des valeurs incorrectes pour les entiers
J'ai une simple chaîne JSON qui a besoin de l'analyse syntaxique:
{"Points": [{"x": 0,"y": 33},{"x": 2200,"y": 28},{"x": 4400,"y": 23},{"x": 6600,"y": 20},{"x": 8800,"y": 19},{"x": 11000,"y": 18},{"x": 13200,"y": 17},{"x": 15400,"y": 15},{"x": 17600,"y": 13},{"x": 19800,"y": 12}]}
La chaîne est générée par le code C++ à des fins de dessin graphique. Quand je le colle dans un formateur json il analyse bien, donnant des valeurs appropriées. Le problème auquel je suis confronté sont les valeurs Y de wierd, par exemple le premier objet dans le tableau "Points" a la valeur y de 20 - et il n'y a aucun 20 dans la chaîne.
Voir la photo ci-jointe, elle explique tout. Le code avant ce qui est sur l'image est la suivante:
RequestJSONParse: function(Data)
{
var Request = Data.split("|");
var RequestType = Request[0];
var RequestParams = Request[1];
var RequestData = undefined;
if (typeof Request[2] != "undefined" && Request[2] != "")
{
console.log("---");
console.log(Request[2]);
console.log("---");
RequestData = JSON.parse(Request[2]);
console.log("---");
console.log(RequestData);
console.log("---");
}
Ma question est - sont les quelques caractères spéciaux ou d'une manière spéciale JSON.parse spécifiquement x, traite les valeurs y? Ou est-ce un problème d'encodage ou quelque chose auquel je ne peux même pas penser? J'ai été sur ce projet pendant 2 ans et n'ai jamais rencontré quelque chose comme ceci et la plupart de notre interface utilisateur est faite en analysant les données JSON.
Voici un 20: '{" x ": 6600," y ": 20}' – Pointy
http://jsbin.com/paganawado/1/edit?js,console - Je ne peux pas reproduire le problème. – Quentin
Notez également le 'i' bleu à côté de votre journal' RequestData' - manipulez-vous les données dans ceci - il semble qu'il a peut-être été modifié après que vous l'avez connecté, et vous visualisez les données modifiées après l'avoir développé. –