Maison > développement back-end > tutoriel php > Pourquoi « json_encode » de PHP convertit-il les nombres en chaînes et comment puis-je y remédier ?

Pourquoi « json_encode » de PHP convertit-il les nombres en chaînes et comment puis-je y remédier ?

Susan Sarandon
Libérer: 2024-11-30 19:12:15
original
482 Les gens l'ont consulté

Why Does PHP's `json_encode` Convert Numbers to Strings, and How Can I Fix It?

Problème d'encodage JSON : PHP json_encode conversion de nombres en chaînes

La fonction json_encode en PHP est rencontrée avec un problème où les valeurs numériques sont codées comme chaînes pendant le processus d’encodage JSON. Il en résulte que JavaScript, lorsqu'il rencontre ces chaînes codées, les interprète comme telles, conduisant à des erreurs dans les opérations numériques. Par exemple :

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

Encode en :

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

Lorsque JavaScript accède à cette propriété "id", elle est interprétée comme une chaîne, provoquant des échecs dans les calculs numériques.

Solution : Empêcher le codage de chaînes

Pour empêcher json_encode de convertir les nombres aux chaînes, une solution existe dans les versions PHP 5.3.3 et supérieures :

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

En spécifiant l'indicateur JSON_NUMERIC_CHECK, les nombres seront automatiquement convertis en types numériques lors du processus d'encodage JSON :

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

Cela garantit que JavaScript peut identifier et manipuler correctement les valeurs sous forme de nombres.

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