/ / PHP JSON große Ganzzahlen - php, json, biginteger

PHP JSON große Ganzzahlen - php, json, biginteger

Ich benutze json_encode um mein php zu transformierenmultidimensionales Array zur Ausgabe von json. Normalerweise würde diese Funktion alle Werte in Zeichenfolgen konvertieren. Um sicherzustellen, dass Integer-Werte als Ganzzahlwerte an Javascript gesendet werden, verwende ich die numerische Überprüfung:

$json = json_encode($data, JSON_NUMERIC_CHECK);

Dies funktioniert in Ausnahmefällen für meine App. In dem PHP-Array (das aus der Datenbank extrahiert wird) gibt es ein Feld, das sehr große Ganzzahlen enthält. Ich speichere es als VARCHAR in der Datenbank, aber leider wird dies bei der Kodierung nach Json in eine Ganzzahl konvertiert. Das Problem ist, dass, da dies eine sehr große ganze Zahl ist, sie gerundet wird und daher nicht den wahren Wert darstellt. Wie könnte ich dieses Problem angehen?

Antworten:

0 für die Antwort № 1

Möchten Sie, dass die große Zahl in umgewandelt wird?eine ganze Zahl? Ihre Frage führt mich zu der Annahme, dass Sie es nicht tun. Wenn dies der Fall ist, entfernen Sie die JSON_NUMERIC_CHECK-Option aus dem Anruf und es sollte nicht die Codierung des Feldes ändern.

Dokumentation über diese (und andere) Konstanten ist Hier.


0 für die Antwort № 2

Vielleicht ist zu spät, aber ich habe das gleiche Problem,und auf PHP 5.3 auf dem Server wegen Legacy-Code stecken, der mit dieser Version ausgeführt werden muss. Die Lösung, die ich verwendet habe, ist dumm, aber funktioniert für mich: einfach fügen Sie ein Leerzeichen am Ende der langen Ganzzahl, die Varchar aus der db gelesen wird, und bevor Sie es an JSON encode mit JSON_NUMERIC_CHECK.