我有一个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)
方法?
答案 0 :(得分:1)
使用Gson将JSONObject转换为Java POJO:
Event event = gson.fromJson(json.toString(), Event.class);
使用Jackson进行相同操作:
ObjectMapper objectMapper = new ObjectMapper();
Event event = objectMapper.readValue(json.toString(), Event.class);
答案 1 :(得分:0)
我怀疑这是一个Builder Pattern
,我的问题是为什么您要将该对象解析为JSON并再次返回该对象?
您不能仅将对象本身传递给方法吗?像addToQueue(this);
一样?