繁体   English   中英

使用Gson的Spring Data JPA页面和JSON

[英]Spring Data JPA Page and JSON with Gson

我使用带有依赖项的xml配置的spring mvc:

    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.12</version>
    </dependency>

    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-jaxrs</artifactId>
        <version>1.9.12</version>
    </dependency>

    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-core-asl</artifactId>
        <version>1.9.12</version>
    </dependency>

    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.4</version>
    </dependency>

转换为JSON。 但是对于Spring数据JPA Page,结果为空: {} 使用存储库:

@Repository("personRepository")
public interface PersonRepository extends CrudRepository<Person, Long> {

    Page<Person> findAll(Pageable pageable);

}

和控制器:

@RestController
public class ApiController {

    @Autowired
    PersonService personService;

    @GetMapping(value = {"/api/person/getpage"}, produces = {"application/json"})
    public Page<Person> getPerson() {
        return personService.findAll(new PageRequest(0, 10));
    }
}

谁能告诉我如何将正确的数据返回为格式:

{ "totalPages":501,
"totalElements":5001,
"size":10,
"content":[{"id":1,"firstName":"Joe","lastName":"Doe"}, 
           {"id":2,"firstName":"Mich","lastName":"Jogger"}, 
           {"id":3,"firstName":"Santa","lastName":"Close"}, ...],
"number":0,
"numberOfElements":10,
"sort":null,
"last":false,
"first":true}

一世

您必须在控制器中将返回类型更改为List<Person> 我可以看到db中有5001条记录。 样本控制器代码

@GetMapping(value = {"/api/person/getpage"}, produces = {"application/json"})
public List<Person> getPerson() {
    Page<Person> pagePersonList = personService.findAll(new PageRequest(0, 10));
    List<Person> personList = pagePersonList.getContent();
    return personList;
}

让我知道是否有任何问题或疑问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM