【发布时间】:2020-01-02 00:50:48
【问题描述】:
我正在尝试转换从 Spring Boot 应用程序查询 postgres jsonb 列得到的 String Json 结果,
这是我得到的结果
[
"[\n {\n \"exam\": 50.0,\n \"grade\": \"A\",\n
\"total\": 79.0,\n \"position\": \"First\",\n
\"student_id\": \"89f36efe-1f36-48dc-92bc-c33df2784144\",\n
\"assessment_1\": 9.0,\n \"assessment_2\": 17.0,\n
\"assessment_3\": 5.0,\n \"student_name\": \"Anana
Aristotle\"\n },\n {\n \"exam\": 50.0,\n
\"grade\": \"A\",\n \"total\": 79.0,\n
\"position\": \"First\",\n \"student_id\": \"89f36efe-
1f36-48dc-92bc-c33df2784144\",\n \"assessment_1\":
9.0,\n \"assessment_2\": 17.0,\n
\"assessment_3\": 5.0,\n \"student_name\": \"Anana
Aristotle\"\n },\n {\n \"exam\": 50.0,\n
\"grade\": \"A\",\n \"total\": 79.0,\n
\"position\": \"First\",\n \"student_id\": \"89f36efe-
1f36-48dc-92bc-c33df2784144\",\n \"assessment_1\":
9.0,\n \"assessment_2\": 17.0,\n
\"assessment_3\": 5.0,\n \"student_name\": \"Anana
Aristotle\"\n },\n {\n \"exam\": 50.0,\n
\"grade\": \"A\",\n \"total\": 79.0,\n
\"position\": \"First\",\n \"student_id\": \"89f36efe-
1f36-48dc-92bc-c33df2784144\",\n \"assessment_1\": 9.0,\n
\"assessment_2\": 17.0,\n \"assessment_3\": 5.0,\n
\"student_name\": \"Anana Aristotle\"\n }\n]"
]
在返回结果之前我已经尝试在我的服务中执行此操作,但我仍然可以获得预期的结果:
public List<?> getStudentAssessments(){
List<?> assessments =
assessmentRepository.getStudentAssessments();
Gson gson = new Gson();
return Collections.singletonList(gson.toJson(assessments));
}
这是我正在使用的代码:
我的仓库
@Query(value = "select jsonb_pretty(a.assessment) from assessment a
where subject_id = 8", nativeQuery = true)
List<?> findAssessmentsByGrade();
我的服务
public List<?> getStudentAssessments(){
return assessmentRepository.getStudentAssessments();
}
还有我的控制器
@ResponseBody
@GetMapping("")
public List<?> getForms(){
return assessmentService.getStudentAssessments();
}
这是我的预期结果:
[
{"exam": 50.0, "grade": "A", "total": 79.0, "position": "First",
"student_id": "89f36efe-1f36-48dc-92bc-c33df2784144"},
{"exam": 50.0, "grade": "A", "total": 79.0, "position": "First",
"student_id": "89f36efe-1f36-48dc-92bc-c33df2784144"},
]
没有换行符。
【问题讨论】:
-
您可以轻松地使用Json框架从Json String到Java对象。
标签: java json spring-boot jpa