Wie kodiere ich ein PHP-Array zu einem JSON-Array, kein Objekt?

8

Ich versuche json_encode ein Array, das von einer Zend_DB Abfrage zurückgegeben wird.

var_dump gibt Folgendes: (Das manuelle Hinzufügen von 0 Mitgliedern ändert das Bild nicht.)

%Vor%

Die codierte Zeichenfolge sieht folgendermaßen aus:

%Vor%

Was ich brauche ist:

%Vor%

Wie die Dokumentation von php.ini / json_encode sagt, sollte sie aussehen.

    
Itay Moav -Malimovka 26.03.2009, 01:59
quelle

4 Antworten

12

Wie richten Sie Ihr erstes Array ein?

Wenn Sie es einrichten wie:

%Vor%

Dann haben Sie kein Array mit numerischen Indizes, sondern Strings, und das wird in ein Objekt in JS world konvertiert. Dies kann auch passieren, wenn Sie keine strenge Reihenfolge festlegen (d. H. Bei 0 statt 1 beginnen).

Dies ist jedoch eine Aufnahme im Dunkeln, weil ich Ihren ursprünglichen Code nicht sehen kann: versuchen Sie, Ihr Array überhaupt einzustellen, ohne überhaupt Schlüssel zu verwenden:

%Vor%     
Seb 26.03.2009, 02:13
quelle
6

Informationen hinzugefügt, die sich auf Seb 's Antwort.

%Vor%

Hinweis: Die Formatierung ist aus gutem Grund so:

Wenn Sie senden

%Vor%

als

%Vor%

Wenn Sie $data[1] in PHP verwendet haben, würden Sie "a" zurückbekommen, aber auf der JavaScript-Seite würden Sie "b" zurückbekommen.

    
Kent Fredric 26.03.2009 02:24
quelle
2

Eine gängige Methode zum Testen eines herkömmlichen, kontinuierlichen Arrays in PHP besteht darin, nach einem Index '0' zu suchen. Versuchen Sie, das zu Ihrem Array hinzuzufügen, es wird wahrscheinlich ein Array anstelle von hashmap in Betracht ziehen.

    
Richard Levasseur 26.03.2009 02:10
quelle
-3

Ich hatte ein ähnliches Problem, habe es nach dem Hinzufügen von '' (einfache Anführungszeichen) um die json_encode Zeichenfolge funktioniert. Nach meiner js-Datei:

%Vor%     
harry 08.06.2010 13:49
quelle

Tags und Links