2016-06-24 1 views
0

Un petit programme que je cours créer 4 objets où chacun a des types de données comme, tableau booléen, chaînes, ints, etc, et les 4 classes sont contenues dans une super classe (dans le but de faire une chaîne de JSON)PHP Json analyse de Java Object

par exemple

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 
} 

Maintenant, je peux facilement convertir cela en json utiliser la bibliothèque Gson. mon problème est d'envoyer ceci à une page de PHP où il peut décoder le json et enregistrer les données de chaque objet. Maintenant, je suis nouveau à PHP et de ce que j'ai vu les gens disent utiliser

json_encode(); json_decode();

et ce que je me demande si c'est le meilleur/moyen le plus simple? D'après ce que je pense avoir vu en ligne, le décodage va créer un objet mais est-ce que cet objet correspond à l'objet Java pour être exactement le même? est leur meilleur moyen? Désolé d'être un noob, mais toute aide est appréciée

Répondre

1

La fonction json_encode fonctionnera pour la conversion de l'objet PHP en Json. Vous voulez examiner l'implémentation de l'interface \JsonSerializable pour ce processus. Aller dans l'autre sens est un peu plus compliqué. L'approche la plus directe consiste à utiliser https://github.com/cweiske/jsonmapper. Vous pouvez aussi json_decode à stdClass, utiliser le sérialiseur php pour transformer stdClass en une chaîne, puis regex remplacer la classe de \ stdClass par la classe que vous voulez. C'est un peu hacky mais ça marche. Voir this poste pour un exemple.

+0

merci pour la réponse, donc si je devais passer d'un objet java qui a été transformé en json et envoyé à ma page web php, convertir en un équivalent n'est pas simple? Donc, la façon dont vous avez suggéré est la meilleure façon selon vous? –

+0

Vous devez créer un autre objet pour cela dans votre code php. Cela peut être une classe php ou une classe stdClass ou un tableau basé sur "HashMap". C'est totalement à ce qui fonctionne pour votre implémentation. Le json_decode de PHP peut très bien faire des tableaux et stdClass. Si pour une raison quelconque vous avez besoin d'un "POJO" PHP pour représenter cette requête, vous devriez probablement utiliser le projet jsonmapper pour mapper les valeurs dans votre "POJO" PHP. –

+0

ok merci, pour finir, quelle est la principale différence entre une classe PHP et stdClass? et PHP POJO fait fondamentalement mon propre objet correct? –