Spring REST Controller 返回 JSON 和空数据 [已关闭]

2022-09-03 02:43:08

我有一个简单的Spring Boot Web应用程序。我正在尝试从服务器接收一些数据。控制器返回一个集合,但浏览器收到空 JSON - 大括号的数量等于来自服务器的对象数量,但其内容为空。

@RestController
public class EmployeeController {

@Autowired
private EmployeeManagerImpl employeeManagerImpl;

    @RequestMapping(path="/employees", method = RequestMethod.GET)
    public Iterable<Employee> getAllEmployees() {
        Iterable<Employee> employeesIterable = employeeManagerImpl.getAllEmployees();
        return employeesIterable;
    }
}

该方法将触发,浏览器将显示:

enter image description here

控制台中没有更多内容。有什么想法吗?

编辑:员工.java

@Entity
public class Employee implements Serializable{

    private static final long serialVersionUID = -1723798766434132067L;

    @Id
    @Getter @Setter 
    @GeneratedValue
    private Long id;

    @Getter @Setter
    @Column(name = "first_name")
    private String firstName;

    @Getter @Setter
    @Column(name = "last_name")
    private String lastName;

    @Getter @Setter
    private BigDecimal salary;

    public Employee(){

    }
}

答案 1

我认为你应该使用龙目岛作为类级别而不是字段级别。

@Entity
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor    
public class Employee implements Serializable {}

这可能会解决您的问题。


答案 2

项目中是否有将 JAVA 对象转换为 JSON 的转换器。如果没有,则需要打开。尝试在项目中使用 Jackson。

一旦 Jackson jar 被导入到项目中,调度程序 servlet 应该具有以下特性:

    <beans:bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <beans:property name="messageConverters">
            <beans:list>
                <beans:ref bean="jsonMessageConverter" />
            </beans:list>
        </beans:property>
    </beans:bean>

    <!-- Configure bean to convert JSON to POJO and vice versa -->
    <beans:bean id="jsonMessageConverter"
        class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
    </beans:bean>