【问题标题】:Get data from List<Object[]> in React从 React 中的 List<Object[]> 获取数据
【发布时间】:2020-10-20 09:29:41
【问题描述】:

作为后端,我使用的是 Spring Boot。 我得到一个对象列表:

@GetMapping("/car/1")
public List<Object[]> findCarById()
{
    List<Object[]> los = entityRepository.getCarById();
    String title;
    Option option; List<Options> options= new ArrayList<Option>();
    for(int i=0; i<los.size(); i++)
    {
        title = (String) los.get(i)[0];
        option = (Option) los.get(i)[1];
        options.add(option);
    }
    return los;
}

作为前端,我正在使用 react: 要检索 id = 1 的汽车选项列表,我尝试了这种方式:

var requestb = new XMLHttpRequest();
requestb.open('GET', 'http://localhost:8080/api/auth/car/1', false);
requestb.send(null);
console.log(JSON.parse(requestb.responseText));

但我没有得到一个 json 下流。 你能告诉我我错过了什么吗?非常感谢。

非常感谢

【问题讨论】:

  • requestb 似乎缺少加载事件侦听器。 developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/…
  • 通过虚拟数据 json 工作,例如 json-server 。找出它与 Backend 或 `frontend` 相关的部分
  • 如何使用 XMLHttpRequest 参考here。但避免使用它,请改用Axios。例如参考here。还要避免在 java 中使用原始的Objects,尽可能长时间地使用 DTO。使用 Postman 测试后端是否工作正常。
  • 非常感谢先生您的回复。只是我有一个问题:建议使用List&lt;Object[]&gt; 从与其他实体有许多关联(ManyToMany)的实体中检索数据,或者只使用简单的调用@GetMapping("/car/1") public List&lt;Option&gt; findCarOptionsByCarId()

标签: reactjs spring-boot


【解决方案1】:

在这种情况下,请尝试对所有关联使用 DTO。

public class CarDto
{
   private String model;
   private OptionDto optionDto;
   ...
}

希望能提供帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 2020-06-07
    • 2016-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    相关资源
    最近更新 更多