Spring REST Controller返回带有空数据的JSON

时间:2016-10-07 10:08:25

标签: java json spring spring-boot spring-web

我有一个简单的Spring Boot Web应用程序。我正在尝试从服务器接收一些数据。 Controller返回一个集合,但浏览器收到空的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

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

编辑: Employee.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(){

    }
}

3 个答案:

答案 0 :(得分:5)

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

Url::to(['/city/view', 'id' => $this->id, 'alias' => $this->alias], $absolute) 

这可以解决您的问题。

答案 1 :(得分:0)

项目中是否有转换器将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>

答案 2 :(得分:-1)

尝试将@ResponseBody添加到方法签名中的REST方法的返回类型声明中。如果你使用的是标准的Spring Boot入门项目,那应该这样做。