2011-05-10 2 views
0

J'ai besoin de convertir cette chaîne en POJO. Pls tel moi comment puis-je faireSérialisation .. Chaîne à POJO

Ceci est juste un exemple

Anne12F02PhysicsPassChemistryPassFirstClass 

Ceci est la chaîne .. Maintenant je dois convertir en POJO

Mon POJO ressemble à ceci

Class student {  
    String Name; 
    int age; 
    char sex; 
    List<Subject> subList; 
    String classiness; 
} 

Class subject { 
    String subject; 
    String result; 
} 

Ceci est juste un exemple.

02 dans la chaîne indique la taille de la liste.

Remarque :: Et aussi la longueur de chaque attribut est prédéfini (par exemple .. Nom 10 caractères .. s'il n'y a que 5 caractères dans le nom, puis l'espace vide est en annexe)

La liste peut à nouveau contenir une liste, la longueur sera indiquée

Répondre

0

Vous devez utiliser la sous-chaîne sur la chaîne pour obtenir tous les différents éléments. Vous devrez ensuite utiliser Integer.parseInt et des fonctions similaires pour convertir la chaîne en types dont vous avez besoin, et enfin, construire votre POJO avec les variables calculées.

De même, si l'un des éléments est une liste (ce qui est le cas), vous devrez créer une ArrayList et ajouter chaque élément, en fonction de la taille de la liste à analyser.

Ainsi, un échantillon serait (supposons que votre chaîne d'entrée est appelée toPojo)

String name = toPojo.substring(0, 10); 
int age = Integer.parseInt(toPojo.substring(10, 12)); 

Comme il est des devoirs, essayez de terminer le reste de ...

EDIT: Suivi

pour obtenir la liste, faire quelque chose comme

// get size of list and loop from zero to the size of the list 
// find the index of the first item in the list 
// int index = startIndex + loop*itemLength 
// toPojo.substring(index, index+sizeOfElement); 
+0

Salut, c'est bien .. Mais quand j'ai une liste dont la taille varie, alors comment puis-je utiliser sous-chaîne .. Je veux dire que la longueur de la liste varie, comment puis-je trouver l'indice valeur d'attribut suivante – Vineet

+0

voir l'exemple de suivi – Codemwnci

0

Si les longueurs des attributs sont prédéfinis, vous pouvez simplement utiliser la méthode String.substring(int, int) pour récupérer chaque attribut, puis créer le POJO hors des valeurs analysées. Quelque chose comme suivant extrait de code:

String input = "Anne12F02PhysicsPassChemistryPassFirstClass"; 

String name = input.substring(0, NAME_LENGTH); // name length is predefined 
String age = input.substring(NAME_LENGTH, NAME_LENGTH + AGE_LENGTH); 

// and so on 

Student s = new Student(name, Integer.parseInt(age)); 
0

Si vos cordes ont une longueur variable, vous pouvez écrire la longueur de chaîne avant la chaîne elle-même, ou utiliser des délimiteurs entre les champs, dire des virgules ou des caractères de pipeline.

Questions connexes