2017-07-14 56 views
0

我有一組包含變量的bean。我想將它們轉換爲另一個bean,它說只有名稱和值的Parameters。我需要在名稱 - 值對中創建所有變量的參數列表。將pojo變量轉換爲另一個bean,它將其作爲名稱和值的列表

我正在考慮推土機或地圖,但這似乎並沒有真正的幫助。

今天,使用objectmapper將其轉換爲地圖,迭代地圖並創建參數列表。

任何幫助,將不勝感激。

+0

你想從一個豆變量複製到另一個? –

+0

如果您提供了一個小例子,說明您的bean看起來像什麼,那麼我可以爲MapStruct提供更多的幫助。 – Filip

+0

是Abhijit。我需要轉換 –

回答

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希望上面的例子可以幫助你爲我推導出答案。 –

0

Mapstruct之類的東西通常會從一個bean轉換到另一個bean,你基本上試圖轉換成一個map並將其包裝到一個bean中。 類似BeanMap會更合適。

未經測試示例代碼:

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 
    } 
} 

然後,只需:

new Bean2(new BeanMap(bean2)) 
相關問題