json_decode wandelt INT Werte um?
markknochen
- php
0 Matti Mäkitalo
0 markknochen0 ChrisB
Hallo, ich bekomme einen JSON-String aus einer API-Abfrage zurück, der enthält unter anderem ein "Feld"
"id":1070107173001
Wenn ich den String mit json_decode in eine PHP-Variable umwandle, dann wird aus 1070107173001 => 1.070107173E+12
und ich kann mit dem Wert nichts mehr anfangen.
Ich kann mir das eigentlich gar nicht vorstellen, warum json_decode den Wert so umwandelt - oder habe ich irgendetwas vergessen?
Danke
markknochen
Hi,
Wenn ich den String mit json_decode in eine PHP-Variable umwandle, dann wird aus 1070107173001 => 1.070107173E+12
und ich kann mit dem Wert nichts mehr anfangen.
Ich kann mir das eigentlich gar nicht vorstellen, warum json_decode den Wert so umwandelt - oder habe ich irgendetwas vergessen?
Ist das Feld, welches json_decode erstellt, ein String, ein Float oder ein Integer-Feld (nutze var_dump, um dies herauszufinden).
könnte sein, dass echo das einfach nur bei der Ausgabe umwandelt.
Bis die Tage,
Matti
Ist das Feld, welches json_decode erstellt, ein String, ein Float oder ein Integer-Feld (nutze var_dump, um dies herauszufinden).
Der JSON-String beginnt mit:
string(1951) "{"items":[{"id":1070107173001,"name":" ...
nach json_decode erhalte ich:
["id"]=>
float(1.070107173E+12)
Da ist es offenbar schon zu spät.
Mark
Hi,
string(1951) "{"items":[{"id":1070107173001,"name":" ...
nach json_decode erhalte ich:
["id"]=>
float(1.070107173E+12)
$x = '{"items":[{"id":1070107173001}]}';
var_dump(json_decode($x));
echo PHP_INT_MAX;
Ausgabe:
object(stdClass)#1 (1) {
["items"]=>
array(1) {
[0]=>
object(stdClass)#2 (1) {
["id"]=>
int(1070107173001)
}
}
}
9223372036854775807
object(stdClass)#1 (1) {
["items"]=>
array(1) {
[0]=>
object(stdClass)#2 (1) {
["id"]=>
float(1070107173001)
}
}
}
2147483647
Noch Fragen?
MfG ChrisB