java - 如何将 JSONObject 转换为 java 对象

标签 java json object pojo

我有一个Event使用构建器模式设置字段并最终将字段添加到 JSON 的类对象。

public class Event{

  private EventProcessor eventProcessor = new EventProcessor();
  private String userName;
  private String userID;

  public Event setUserName(String userName){
     this.userName = userName;
     return this;
  }
  public Event setUserID(String userID){
     this.userID = userID;
     return this;
}

  public void toJson(){
   JSONObject json = new JSONObject();

   if(null != userName)
   json.put("userName", userName);
   if(null != userID)
   json.put("userID", userID);

  // need help to convert json to "event"
   eventProcessor.addToQueue(event);
  }
 }

EventProcessor 类

  public class EventProcessor{

   static{
  EventQueue eventQueue = new EventQueue<Event>();
 }

  public void addToQueue(Event event){

    eventQueue.add(event);
   }

 }

我曾经通过json进入eventProcessor.addToQueue()方法和设置eventQueue = new EventQueue<JSONObejct>()public void addToQueue(JSONObject event) 。这对我有用。但现在我需要将 POJO 传递给 addToQueue(Event event)方法。如何更改代码并转换 json结果为event对象并将其作为参数传递给 addToQueue(Event event)方法?

最佳答案

  1. 您可以使用Gson将JSONObject转换为java POJO:

    Event event = gson.fromJson(json.toString(), Event.class);
    
  2. 您可以使用 Jackson 来执行相同的操作:

    ObjectMapper objectMapper = new ObjectMapper();
    Event event = objectMapper.readValue(json.toString(), Event.class); 
    

关于java - 如何将 JSONObject 转换为 java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52937380/

相关文章:

java - PHP 定时作业 : MySQL Query to Text File Weekly

java - 为什么我们不能调用 servlet 构造函数而不是 init 方法来初始化配置参数?

javascript - 为什么 delete 运算符返回 true 即使属性没有从对象中删除

java - 在java中访问多个ArrayList的对象元素

java - Spring:REST 异常被捕获为 403 Forbidden 异常

javascript - 在 JavaScript 中验证 JSON 文件

Android - 如何在 Robospice/retrofit 中获取 JSON 格式的请求和响应

json - Serilog/JSNLog .NET Core 记录空 JSON

javascript - 是否可以使已初始化的对象文字成为已定义类的实例?

java - 使 Spring 3 MVC Controller 方法成为事务性的