如何将对象添加到JSON

时间:2015-04-25 18:56:13

标签: java json jackson

在后期服务中,我使用以下方法来解析和更新数据库:

ObjectMapper mapper = new ObjectMapper();
        JsonNode node = mapper.readTree(<String>);
        UserLogin userLogin = mapper.convertValue(node.get("UserLogin"), UserLogin.class);
        UserSecurityDetails userSecurityDetails = mapper.convertValue(node.get("UserSecurityDetails"), UserSecurity

现在,在获取服务时,我希望通过从数据库中撤消并添加到JSON来发送相同的数据。有谁能建议什么是最好的方式?

要形成的示例JSON:

{

"UserLogin":
    {
        "user_login_id": "10011",
        "user_password": "password"
    },
"UserSecurityDetails":
    {
        "user_sequence_id": "1",
        "seq_question_id": "1",
        "seq_answer": "Test Answer"
    }

}

1 个答案:

答案 0 :(得分:1)

创建包含UserLoginUserSecurityDetails的包装器POJO。杰克逊将自动deserialize到您的对象。

  

优良作法是期望所需的Object而不是从String创建对象。

你的Wrapper类就像

public class SecurityDetailsWrapper {
     private UserLogin;
     private UserSecurityDetails;

     // costructor

     // getters and setters
}

在您的Controller方法中,您可以期待SecurityDetailsWrapper

public void someFunction(@RequestBody SecurityDetailsWrapper wrapper) {
  // business logic
}

杰克逊将照顾Deserialization