我是一个像这样的简单对象
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 :(得分: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"}}