我尝试通过java中的serversocket进行通信。突然间,我找不到正确的答案,因为我的简单问题是:我想创建json对象,其中数据由两个对象构建。第一个对象是一个字符串,它是一个动作名称,第二个是一个java对象,例如一个User(name,email,pass ...)。这是因为我想要为处理服务器的用户(注册,登录...)发送需要做的操作。我不应该像:
{
"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处理它以创建User对象。哪种方法最好?
答案 0 :(得分:0)
@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();
}