2016-08-21 1 views
0

Я простой объект, как этотGSON - Создание JSON строку из объекта и viseversa

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

Когда я хочу создать JSON строку из этого объекта с помощью GSON я это сделать так:

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"}} 
Смежные вопросы