2016-03-17 47 views
1

假設我有幾個變量:爪哇 - 轉換的變量列表來映射變量名的變量值

public void foo() { 
    String name = "Bob"; 
    String gender = "Male"; 
    Integer age = 6; 
    String address = "some address"; 
} 

我怎樣才能把它們變成一個Map<String, Object>

Map<String, Object> map = new HashMap<>(); 
map.put("name", name); 
map.put("gender", gender); 
map.put("age", age); 
map.put("address", address); 
比手動等

將它們插入到地圖中。這可以使用反射來完成嗎?

+1

你真的需要什麼?這種格式的地圖或字符串? – josivan

+0

你想寫一個JSon? –

+0

剛剛編輯我的問題,它與Json無關,我只需要一張地圖:) – WoLfPwNeR

回答

4

不,您必須手動將它們放入地圖中。無法使用反射來查找局部變量的名稱或值。

0

如果你的變量是固定的類轉換成地圖,那麼你可以將它們轉換成json。

您可以先準備包含變量的對象,然後使用toJson()方法將其轉換爲您在問題中指定的格式。

這個link可能有助於使用toJson()方法從google gson library

3

不要重新發明輪子 使用JSON庫和分析你的對象

例子(使用GSON ...):

public class GenericTypeData { 
    private String name = "Bob"; 
    private String gender = "Male"; 
    private int age = 6; 
    private String address = "some address"; 

    public GenericTypeData() { 
     this.name = "Bob"; 
     this.gender = "Male"; 
     this.age = 6; 
     this.address = "some address"; 
    } 

    public static void main(String[] args) { 
     System.out.println(new Gson().ToJson(this, GenericTypeData.class)); 
    } 

} 

你會得到一個JSON像

{ 
    "name": "Bob", 
    "gender": "Male", 
    "age": 6, 
    "address": "some address", 
}