![](/img/trans.png)
[英]Converting a list of json objects to java object using gson, gets null
[英]Converting JSON list as different Java Objects in GSON
我有以下json字符串:
[
{
"question" : {
"questionId" : 1109,
"courseId" : 419
},
"tags" : ["PPAP", "testtest"],
"choices" : [{
"choiceId" : 0,
"questionId" : 0
}, {
"choiceId" : 0,
"questionId" : 0
}
]
}
]
如何使用GSON将问题,标签和选择放入单独的对象中? 当前,我仅使用fromJson
并且仅在包含一种类型的对象的情况下才能转换JSON字符串。
您可以参加以下课程
class Question{
questionId; //specify data type
courseId;
}
class Choice{
choiceId;
questionId;
}
然后,您可以再定义一个类,该类将容纳所有三个成员变量
class Extract{
Question question;
List<String> tags;
List<Choice> choices;
}
然后,您可以将此Extract类传递给fromJson
方法,例如
List<Extract> result = gson.fromJson(jsonString, new TypeToken<List<Extract>>(){}.getType());
这对我来说与定义的POJO类一起工作。
public static void main(String[] args) {
String jsonString = "[{\"question\":{\"questionId\":1109,\"courseId\":419},\"tags\":[\"PPAP\",\"testtest\"],\"choices\":[{\"choiceId\":0,\"questionId\":0},{\"choiceId\":0,\"questionId\":0}]}]";
Gson gson = new Gson();
JsonParser parser = new JsonParser();
JsonArray array = parser.parse(jsonString).getAsJsonArray();
for (final JsonElement json : array) {
JsonModel jsonModel = gson.fromJson(json, new TypeToken<JsonModel>() {
}.getType());
System.out.println(jsonModel.toString());
}
}
public class JsonModel implements Serializable {
private static final long serialVersionUID = -2255013835370141266L;
private List<Choices> choices;
private List<String> tags;
private Question question;
...
getters and setters
}
public class Choices implements Serializable{
private static final long serialVersionUID = 3947337014862847527L;
private Integer choiceId;
private Integer questionId;
...
getters and setters
}
public class Question implements Serializable{
private static final long serialVersionUID = -8649775972572186614L;
private Integer questionId;
private Integer courseId;
...
getters and setters
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.