json_decode wandelt INT Werte um?
    
markknochen
    
    
      
    
  - php
- 0 Matti Mäkitalo- 0 markknochen- 0 ChrisB
 
 
 nicht angemeldet
 nicht angemeldetHallo, 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