J'essaye de construire une chaîne dans JS qui peut être passée dans JSON avec un format très particulier. résultat souhaité est une chaîne de la forme suivante:Comment échapper les guillemets entre JS et JSON
[ "PNG", "350x150", "127 KB"]
Où PNG
correspondent au type d'une image particulière, où 350x150
est l'image de dimensions et où 127 KB
est la taille de l'image. Chacune de ces valeurs threee sont des variables de chaîne:
var imgType = getImageType(); // Returns "PNG"
var imgDim = getImageDim(); // Returns "350x150"
var imgSize = getImageSize(); // Returns "127 KB"
var imgDescription = '["' + imgType + '","' + imgDim + '","' + imgSize + '"]';
// Sanity check
alert(imgDescription);
iVO.images[thisImage] = {
"fizz":"buzz",
"imgDesc":imgDescription,
"foo":"bar"
}
alert(JSON.stringify(iVO));
La première alerte (sur la variable imgDescription
) imprime:
[ "PNG", "350x150", "127 KB"]
Jusqu'ici, tout va bien. Cependant, la minute où nous passons à la iVO
construction et stringify la JSON résultante, il génère la sortie suivante (après avoir assez format l'imprimer):
{
"images":
{
"4490i45"":
{
"fizz":"buzz",
"imgDesc":"[\"PNG\",\"350x150\",\"127 KB\"]",
"foo":"bar"
}
}
}
Tous mes guillemets doubles (") ont été échappées (\ ") !!! En outre, la valeur pour imgDesc
est entre guillemets, ce qui n'est pas ce que nous voulons (voir le JSON souhaité ci-dessous):
Lorsque je renvoie ce JSON au serveur, le serveur se bloque.
Je ne sais pas ce qui se passe ici, mais j'ai essayé plusieurs autres suggestions, y compris le remplacement de mes guillemets avec '\x22'
instances qui n'a pas aidé.
Des idées sur ce qui permettrait de résoudre ce problème pour obtenir le résultat souhaité de JSON.stringify(iVO)
? En fin de compte, c'est la seule chose qui compte, que l'on finit par envoyer les documents suivants au serveur:
{
"images":
{
"4490i45"":
{
"fizz":"buzz",
"imgDesc":["PNG","350x150","127 KB"],
"foo":"bar"
}
}
}
Pas échappèrent guillemets doubles, et n'est pas entre guillemets la valeur pour imgDesc
. Merci d'avance!
Avez-vous essayé d'ajouter des citations supplémentaires se sont échappés? – dweiss
Cela ressemble à une suggestion décente @dweiss - une chance de fournir un exemple de code? Merci encore! – IAmYourFaja
Votre cible n'est pas valide JSON ("imgDesc": ["PNG", "350x150", "127 KB"], etc.). – Will