2016-06-24 8 views
0

Ein kleines Programm, das ich ausführen werde 4 Objekte erstellen, wo jeder Datentypen wie Bool-Array, Strings, Ints usw. hat, und alle 4 Klassen sind innerhalb einer Super-Klasse enthalten um es zu einem JSON-String zu machen)PHP Json Parsing von Java-Objekt

z

public class Foo 
{ 
    private A a; 
    private B b; 
    private C c; 



} 

public class A 
{ 
    String str; 
    int int_; 
} 

public class B 
{ 
    boolean arr[]; 

} 

public class C 
{ 
    // maybe an object, or rnum, or just priv data types 
} 

Jetzt kann ich dies einfach in Json verwenden Gson Bibliothek konvertieren. Mein Problem ist das Senden an eine PHP-Seite, wo es den JSON dekodieren und die Daten von jedem Objekt speichern kann. Jetzt bin ich neu in PHP und von dem, was ich gesehen habe, sagen Leute

json_encode(); json_decode();

und was ich frage mich, ob dies der beste/einfachste Weg ist? von dem, was ich online gesehen habe, wird die Dekodierung ein Objekt erstellen, aber stimmt dieses Objekt mit dem Java-Objekt überein, um genau dasselbe zu sein? Ist das ein besserer Weg? Entschuldigung dafür, ein Noob zu sein, aber jede Hilfe wird geschätzt

Antwort

1

Die json_encode-Funktion wird für das PHP-Objekt zu Json-Konvertierung funktionieren. Sie möchten in die Implementierung der \JsonSerializable Schnittstelle für diesen Prozess schauen. Der umgekehrte Weg ist etwas komplizierter. Der direkteste Ansatz ist die Verwendung von https://github.com/cweiske/jsonmapper. Sie können auch json_decode zu stdClass verwenden, den php-Serializer verwenden, um stdClass in eine Zeichenfolge umzuwandeln, und dann regex ersetzen Sie die Klasse von \ stdClass in die gewünschte Klasse. Es ist ein bisschen hacky, aber es funktioniert. Ein Beispiel finden Sie in this Post.

+0

danke für die antwort, also wenn ich von einem java-objekt, das in json umgewandelt wurde und an meine php-webseite gesendet wurde, das in ein äquivalent umwandeln, ist das nicht einfach? Die Art und Weise, wie du es vorgeschlagen hast, ist deiner Meinung nach der beste Weg? –

+0

Sie müssen ein anderes Objekt dafür in Ihrem PHP-Code erstellen. Das kann eine PHP-Klasse oder eine stdClass oder eine Array-basierte "HashMap" sein. Es hängt völlig davon ab, was für Ihre Implementierung funktioniert. PHP's json_decode kann Arrays und stdClass problemlos ausführen. Wenn Sie aus irgendeinem Grund ein PHP "POJO" benötigen, um diese Anfrage zu repräsentieren, sollten Sie wahrscheinlich das Projekt jsonmapper verwenden, um die Werte in Ihrem PHP "POJO" abzubilden. –

+0

ok danke, um zu beenden, was ist der Hauptunterschied zwischen einer PHP-Klasse und StdClass? und PHP POJO macht eigentlich mein eigenes Objekt korrekt? –