Maison > développement back-end > tutoriel php > Pourquoi « json_encode » renvoie-t-il parfois des nombres sous forme de chaînes et comment puis-je empêcher cela ?

Pourquoi « json_encode » renvoie-t-il parfois des nombres sous forme de chaînes et comment puis-je empêcher cela ?

Linda Hamilton
Libérer: 2024-12-03 06:13:16
original
743 Les gens l'ont consulté

Why Does `json_encode` Sometimes Return Numbers as Strings, and How Can I Prevent This?

Json_encode Strings vs. Numbers

Lors de l'utilisation de la fonction PHP json_encode, vous pouvez rencontrer un problème où les nombres sont codés sous forme de chaînes. Cela peut entraîner un comportement inattendu lorsque vous travaillez avec JavaScript, car les chaînes ne peuvent pas être utilisées pour des opérations numériques.

Comprendre le problème

Par exemple, si vous avez un tableau comme this :

array('id' => 3)
Copier après la connexion

json_encode affichera la chaîne JSON suivante :

"{ ["id": "3", ...)
Copier après la connexion

Remarquez que la propriété id est entourée de guillemets, indiquant une valeur de chaîne. Lorsque JavaScript rencontre cette chaîne, il l'interprète comme telle et tous les calculs numériques effectués dessus échoueront.

Prévenir le codage des chaînes

Pour résoudre ce problème, vous pouvez utiliser l'indicateur JSON_NUMERIC_CHECK lors de l'appel de json_encode. Cet indicateur demande à PHP de convertir automatiquement les nombres en valeurs numériques avant l'encodage.

$arr = array( 'row_id' => 1, 'name' => 'George' );
echo json_encode( $arr, JSON_NUMERIC_CHECK );
Copier après la connexion

Cela affichera :

{"row_id":1,"name":"George"}
Copier après la connexion

Avec l'indicateur JSON_NUMERIC_CHECK, la propriété row_id est désormais un véritable nombre, vous permettant d'effectuer des opérations numériques dessus en JavaScript sans aucun problème.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal