Java gson与hava服务器套接字的多json对象通信

Java gson与hava服务器套接字的多json对象通信,java,json,Java,Json,我尝试通过java中的serversocket进行通信。突然,我找不到正确的答案来回答我的简单问题:我想创建json对象,其中数据由两个对象构建。第一个对象是一个字符串,它是一个操作名,第二个是一个java对象,例如一个用户(名称、电子邮件、传递…)。这是因为我想发送处理服务器的用户需要执行的操作(注册、登录…)。我不应该这样: { "action":{"type":"registration"} "user":{"name":"Susie", "pass":"pass1"} } 如何在jav

我尝试通过java中的serversocket进行通信。突然,我找不到正确的答案来回答我的简单问题:我想创建json对象,其中数据由两个对象构建。第一个对象是一个字符串,它是一个操作名,第二个是一个java对象,例如一个用户(名称、电子邮件、传递…)。这是因为我想发送处理服务器的用户需要执行的操作(注册、登录…)。我不应该这样:

{
"action":{"type":"registration"}
"user":{"name":"Susie", "pass":"pass1"}
}
如何在java中创建它? 我的示例代码:

public static void main(String args[]){
    String action = "registration";
    User user = new User();
    user.setName("Susane");
    user.setPassword("pass1");
    Gson gson = new GsonBuilder().create();
    String json = gson.toJson(user);
    JsonParser p = new JsonParser();
    JsonObject obj = p.parse(json).getAsJsonObject();
    System.out.println(obj);
}

我希望将操作和用户作为json字符串发送,然后在服务器上使用gson处理它以创建用户对象。哪种方法最好?

目前来看,这个问题非常广泛。考虑把范围缩小到你面临的一个问题,我意识到我该如何解决我的问题。很简单,只需创建两个json对象并将它们添加到第三个json对象中,然后将其发送到服务器并在服务器端解析它们,然后在gson的帮助下获取操作名称和对象。
@FXML
void signUp(ActionEvent event) {
    PrintWriter writer = MainGui.client.getWriter();

    User user = new User();
    user.setName(userNameField.getText());
    user.setPassword(pwField.getText());
    Gson gson = new GsonBuilder().create();
    String json = gson.toJson(user);
    JsonParser p = new JsonParser();
    JsonObject obj = p.parse(json).getAsJsonObject();

    JsonObject jsonAction = new JsonObject();
    jsonAction.addProperty("type", "registration");

    JsonObject sendMsg = new JsonObject();
    sendMsg.add("action", jsonAction);
    sendMsg.add("user", obj);
    writer.println(sendMsg.toString());
    writer.flush();
}