2017-07-14 2 views
0

J'ai un bean avec un ensemble de variables. Je veux les convertir en un autre haricot dire Paramètres qui a juste le nom et la valeur. J'ai besoin de faire la liste des paramètres de toutes ces variables dans la paire nom-valeur.Convertir une variable pojo en un autre bean qui la prend comme liste de nom et de valeur

Je pense à Dozer ou Mapstruct mais cela ne semble pas vraiment utile.

Aujourd'hui, en utilisant objectmapper pour le convertir en cartes, itérer sur des cartes et créer la liste des paramètres.

Toute aide serait appréciée.

+0

Voulez-vous copier les variables d'un haricot à l'autre? –

+0

Si vous fournissez un petit exemple de la façon dont vos haricots ressemblent, je pourrais aider plus pour MapStruct – Filip

+0

oui Abhijit. J'ai besoin de convertir –

Répondre

0
class TestClass{ 
    private String str1; 
    private String str2; 
    private String str3; 
    } 

    Class Paramters{ 
    private String name; 
    private String value; 
    } 

    **Bean1:** 
    '[ 
     { 
      "str1": "string", 
      "str2": "string", 
      "str3": "string" 
     }, 
     { 
      "str1": "string1", 
      "str2": "string1", 
      "str3": "string1" 
     } 
    ]' 

    To Convert **Bean2** 

    '[{ 
     "parameters": [ 
      { 
       "name": "str1", 
       "value": "string" 
      }, 
      { 
       "name": "str2", 
       "value": "string" 
      }, 
      { 
       "name": "str3", 
       "value": "string" 
      } 
     ] 
    }, 
    { 
     "parameters": [ 
      { 
       "name": "str1", 
       "value": "string" 
      }, 
      { 
       "name": "str2", 
       "value": "string" 
      }, 
      { 
       "name": "str3", 
       "value": "string" 
      } 
     ]}]' 
+0

@Filip espère que l'exemple ci-dessus vous aide à dériver la réponse pour moi. –

0

Mapstruct et similaires convertissent généralement d'un haricot à l'autre, vous essayez essentiellement de convertir en une carte et envelopper cela à un haricot. Quelque chose comme BeanMap serait plus approprié.

exemple de code non testé:

class Bean2 { 
    private final Map<String, Object> properties; 

    public Bean2(Map properties) { this.properties = properties } 


    public static class Entry { String name, String value /* getters and setters */} 

    @JsonProperty 
    public List<Map<String, Object>> getProperties() { 
     // build a map of maps here, each map would have 
    } 
} 

Ensuite, il suffit:

new Bean2(new BeanMap(bean2))