我有以下控制器代码。
@RequestMapping(value = "/testService/test", produces = MediaType.APPLICATION_JSON_VALUE)
public HttpEntity<TestBean> test(@RequestParam Map<String,String> testReq) {
...
List<Test> objList=testRepository.test();
testBean.setObjects(objList);
...
return new ResponseEntity<TestBean>(testBean, HttpStatus.OK);
}
TestBean包含一个Test对象列表(包含getter / setter和其他一些属性),如下所示
private List<Test> objects;
测试类定义如下
@Entity
@Table(name="TEST")
@JsonIgnoreProperties(ignoreUnknown = true)
public class Test implements Serializable{
private static final long serialVersionUID = -5319848003675140194L;
@JsonIgnore
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="TEST_ID")
Integer testId;
...
test()方法定义如下。
@Query(value="SELECT ...", nativeQuery=true)
List<Test> test();
我看到的json输出如下
{"requestId":"testRequestId","objects":[[1,"Test name"],[2,"Test name2"]],"status":"Success"}
其他事情还可以,我的问题是为什么对象列表以这种方式输出而不是像这样
{"testId":1,"testName":"Test name"}
对于我正在使用的其他类似对象,我看到了预期的输出(以适当的json格式)。
请注意,我没有复制实际代码,但键入了更改名称的代码,因此请忽略您在代码中看到的任何语法错误。
有人可以告诉我如何在输出中获得正确的json?
答案 0 :(得分:1)
我遇到了这个问题。问题是我使用的是为不同对象创建的JPA存储库类。 我为Test对象创建了一个新的JPA存储库类,它现在工作正常,我正确地形成了json输出。 感谢