1. S'il y a des attributs dans l'objet JSON qui contiennent des guillemets doubles, tels que
{
"description": "25""
}
Si elle est convertie sous forme de chaîne, une barre oblique inverse sera ajoutée automatiquement et deviendra "25 "", Puis transmis à l'API REST et enregistré dans MongoDB.
Si vous utilisez le shell MongoDB pour afficher les données à ce moment-là, ce sera "25"", ce qui est correct.
2. Mais si vous utilisez le pilote C pour lire ceci valeur, vous obtiendrez "25"" , donc si vous le renvoyez directement au navigateur et utilisez jQuery.parseJSON() pour l'analyser, une erreur sera signalée.
Lors de la sérialisation du segment C dans une chaîne, vous devez porter un jugement et remplacer "par"
void string_to_json_string(std::string const& str, std::string & json_str) {
std::stringstream ss
for (size_t; je = 0; je < str.length(); je) {
if (str[i] == '"') {
ss << '\' << '"' ;
} else {
ss << str[i];
}
json_str =
}
3. Si après que JavaScript appelle jQuery.parseJSON() sur "25"", la barre oblique inverse a disparu et est devenue "25"". Si jQuery.pareseJSON est à nouveau appelé sur cette valeur d'attribut, une erreur se produira à nouveau.
JavaScript doit écrire du code pour éviter les erreurs :
removeDoubleQuotes: function(str) {
return str.replace(""", "\"");
>
C'est la réincarnation du double citations en JSON. C'est déjà assez gênant, soyez prudent.
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn