从 JSON 创建 POJO 数组



我试图从json中获得多个POJO,看起来像这样

{
"obj1": {
"quizowner": "testacccc",
"question": "questionB",
"answer": "6",
"directions": "directionsB",
"quizname": "quiz Name",
"subject": "subjB",
"options": "5, 7, 6",
"type": "CHECKBOX"
},
"obj0": {
"quizowner": "testacccc",
"question": "questionA",
"answer": "3",
"directions": "directionsA",
"quizname": "quiz Name",
"subject": "subjA",
"options": "1,2,3",
"type": "MULTIPLECHOICE"
}
}

在使用JACKSON之前我已经这样做了,但是只使用了一个对象。在对象中可能有多达50个这样的对象,我不确定如何访问它们。

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("questions")
public Response addQuiz(Question question, @Context HttpHeaders headers) {

}

我如何将JSON映射到问题pojo的数组?还是有更好的办法?

如果传入的json类似于{"obj1":{"question":"questionB","answer":"6","directions":"directionsB","quizname":"quiz Name","subject":"subjB","options":"5, 7, 6","type":"CHECKBOX"}}|

Then单向是创建一个像

这样的类
public class QuestionBase {
@JsonProperty("obj1")
public Question question;
:
: //getters n setters
}

,像

一样使用
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("questions")
public Response addQuiz(QuestionBase questionBase, @Context HttpHeaders headers) {
questionBase.getQuestion() ----> will give you the question details
}

第二种方式我可以建议编写一个自定义JSON反序列化。你可以在这里看到一个例子

最新更新