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)
Encode en :
{ ["id": "3", ...)
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 );
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"}
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!