我正在迭代列表对象并使用Java创建JSON对象。我的列表有两条记录,但它只附加了最后一条记录。这是我的代码
JSONObject obj = new JSONObject();
try (Session session = factory.openSession()) {
String hql = "FROM Personalisation E WHERE E.userId = "+id;
Query query = session.createQuery(hql);
List<?> results = query.list();
for(int i = 0; i < results.size(); i++) {
Persona p = (Person) results.get(i);
System.out.println(p.getCourseId());
obj.put("courseId", p.getCourseId());
obj.put("CourseValue", (JSONObject)new JSONParser().parse(p.getCourseValue()));
}
} catch (Exception e) {
e.printStackTrace();
}
结果是
C5 <-- Course ID
C6 <-- Course ID
{"CourseValue":{"color":"blue","value":"#f00"},"courseId":"C6"}
还应该有一个记录。
我错过了什么吗?
答案 0 :(得分:0)
您必须将JsonObject
实例存储在数组中,我使用gson作为示例,因为您尚未指定要使用的框架:
JsonArray array = new JsonArray();
try (Session session = factory.openSession()) {
String hql = "FROM Personalisation E WHERE E.userId = "+id;
Query query = session.createQuery(hql);
List<?> results = query.list();
for(int i = 0; i < results.size(); i++) {
JSONObject obj = new JSONObject();
Persona p = (Person) results.get(i);
System.out.println(p.getCourseId());
obj.put("courseId", p.getCourseId());
obj.put("CourseValue", (JSONObject) new JSONParser().parse(p.getCourseValue()));
array.add(obj);
}
} catch (Exception e) {
e.printStackTrace();
}
return array;