Hen*_*Lee 3 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);
}
}
Run Code Online (Sandbox Code Playgroud)
事件处理器类
public class EventProcessor{
static{
EventQueue eventQueue = new EventQueue<Event>();
}
public void addToQueue(Event event){
eventQueue.add(event);
}
}
Run Code Online (Sandbox Code Playgroud)
我曾经传入json方法eventProcessor.addToQueue()并设置eventQueue = new EventQueue<JSONObejct>()和public void addToQueue(JSONObject event)。这对我有用。但现在我需要将 POJO 传递给该addToQueue(Event event)方法。如何更改代码并将json结果转换为event对象并将其作为参数传递给addToQueue(Event event)方法?
您可以使用 Gson 将 JSONObject 转换为 java POJO:
Event event = gson.fromJson(json.toString(), Event.class);
Run Code Online (Sandbox Code Playgroud)你可以使用 Jackson 来做同样的事情:
ObjectMapper objectMapper = new ObjectMapper();
Event event = objectMapper.readValue(json.toString(), Event.class);
Run Code Online (Sandbox Code Playgroud)