我编写了一个剩余的 Spring Boot,它返回 List
public List<Map<String,Object>> getAll(@Valid DataRequestDto dto)
{
List<Map<String,Object>> data = (List<Map<String, Object>>) dataOperationMap.getAllData(dto);
return data;
}
预期输出示例如下:
{
"id": 7581,
"serialid": 24,
"parentid": 7576,
"rowno": 5,
"code": "15005",
"acckind": {
"id": 10080001,
"title": "بودجه ای",
"systemDefine": 1,
"typeValueId": 1,
"isActive": true,
"isDefault": true,
"engTitle": ""
},
"accbalance": {
"id": 10160001,
"title": "خنثی و بدون کنترل",
"systemDefine": 1,
"typeValueId": 1,
"isActive": true,
"isDefault": true,
"engTitle": null
}
},
{
"id": 7582,
"serialid": 24,
"parentid": 7576,
"rowno": 6,
"code": "15006",
"acckind": {
"id": 10080001,
"title": "بودجه ای",
"systemDefine": 1,
"typeValueId": 1,
"isActive": true,
"isDefault": true,
"engTitle": ""
},
"accbalance": {
"id": 10160001,
"title": "خنثی و بدون کنترل",
"systemDefine": 1,
"typeValueId": 1,
"isActive": true,
"isDefault": true,
"engTitle": null
}
}
但是“accKind”和“accBalance”从第二个数据开始,已经被仅替换为id,如下:
{
"id": 7581,
"serialid": 24,
"parentid": 7576,
"rowno": 5,
"code": "15005",
"acckind": {
"id": 10080001,
"title": "بودجه ای",
"systemDefine": 1,
"typeValueId": 1,
"isActive": true,
"isDefault": true,
"engTitle": ""
},
"accbalance": {
"id": 10160001,
"title": "خنثی و بدون کنترل",
"systemDefine": 1,
"typeValueId": 1,
"isActive": true,
"isDefault": true,
"engTitle": null
}
},
{
"id": 7582,
"serialid": 24,
"parentid": 7576,
"rowno": 6,
"code": "15006",
"acckind": 10080001,
"accbalance": 10160001,
}
我希望整个对象显示在所有列表数据中。
在调试中我明白数据在返回之前都是正确的,并且在转换为json时发生了变化。
pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.hushaerp</groupId>
<artifactId>form-manager</artifactId>
<version>1.0-RELEASE</version>
<name>form-manager</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR9</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-starter-config</artifactId>-->
<!-- </dependency>-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-oauth2</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
出现此问题的原因是,在添加地图条目时,我在每个条目中放置了相同的 acckind 和 accbalance 对象,以防它们需要为每个条目都是新的并获得新的 id。