Quindi sto usando php 5.2.6 in un ambiente WAMP.Come aggirare o fare in modo che PHP json_decode non modifichi i miei valori interi molto grandi?
Sto cercando di utilizzare la funzione json_decode per creare una stringa json in una matrice. Il JSON proviene da un'API REST altrove, quindi non ho il controllo sulla formattazione della stringa JSON. Ecco un esempio di una delle stringhe JSON che sto cercando di utilizzare:
[{
"webinarKey":795855906,
"sessionKey":100000000041808257,
"startTime":"2011-12-16T13:56:15Z",
"endTime":"2011-12-16T14:48:37Z",
"registrantsAttended":2
}]
Sono in particolare dopo il valore SessionKey qui. PHP sta trattando il valore come un float e non riesco a fare nulla per recuperare il valore originale.
ho provato il seguente:
json_decode($json, true, 512, JSON_BIGINT_AS_STRING);
# This produces the following error because my php version isn't up to snuff and I
# can't upgrade to the version required
# Warning: json_decode() expects at most 2 parameters, 4 given
ho provato anche questo:
$json_obj = json_decode($json, true);
number_format($json_obj[0]["sessionKey"], 0, '.', '');
# This results in precision issues where the value was 100000000041808257
# but is number_formated out as 100000000041808256
Come detto, l'aggiornamento a PHP 5.4 (dove la chiamata json_decode 4 parametro è supportato) non è un'opzione. Per favore aiuto!
Grazie!
Penso che ci sia un duplicato qui su SO da qualche parte, potrebbe valere la pena cercare –
Si potrebbe guardare a questa domanda. Alcune persone hanno elencato le soluzioni dopo che il JSON è stato restituito ma prima che sia decodificato. http://stackoverflow.com/q/2907806/2863 –