2016-08-21 25 views
0

JSON字符串我有一個簡單的對象這樣GSON - 從創建對象和viseversa

public class WebMessage 
{ 
    public String destinationAddress; 
    public String clientType; 
    public JsonObject params; 
} 

當我想用GSON創建從該對象JSON字符串我這樣做如下:

WebMessage parringMsg = new WebMessage(); 
JsonObject parameters = new JsonObject(); 
parameters.addProperty("action", "PARRING_START");   
parringMsg.params = parameters;   

String finalString = jsonString.toJson(parringMsg); 

但最終的字符串看起來是這樣的:

{"params":{"members":{"action":"PARRING_START"}}} 

我不明白爲什麼我的行動重點放在內部成員的關鍵。這是爲什麼?

我希望它看起來像這樣:

{"params":{"action":"PARRING_START"}} 

回答

0

而不是使用一個JSONObject我的類裏面我用一個HashMap像這樣:

public class WebMessage 
{ 
    public WebMessage() 
    { 
     params = new HashMap<>(); 
    }  
    public String destinationAddress; 
    public String clientType;  
    public HashMap<String,String> params; 
} 

那麼我可以簡單地把價值在那裏像此,這也是簡單得多:

WebMessage parringMsg = new WebMessage(); 
parringMsg.params.put("action", "PARRING_START"); 
String finalString = jsonString.toJson(parringMsg); 

利用上述我得到所需的輸出在finalString:

{"params":{"action":"PARRING_START"}}