首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在spring引导中返回json格式的对象数组?

如何在spring引导中返回json格式的对象数组?
EN

Stack Overflow用户
提问于 2020-12-06 18:52:15
回答 1查看 4.8K关注 0票数 2

检查这两种控制器方法。他们都使用相同的对象。第一个名为backtestStrategy正确地返回一个JSON格式的响应。第二个名为getAllStrategies的值返回一个不是JSON格式的值数组。所有的值都在那里,但没有一个键。

代码语言:javascript
复制
@RestController
@RequestMapping("/api/v1")
public class StrategyController {
    @Autowired
    private StrategyService strategyService;

    @GetMapping("/backtest")
    public Response backtestStrategy(@RequestParam String strategyName, @RequestParam String symbol) {
        Response response = strategyService.backtestStrategy(strategyName,symbol);
        return response;
    }
    
   @GetMapping("/strategies")
   public List<Response> getAllStrategies() {
        List<Response> strategies = strategyService.getAllStrategies();
        return strategies;
    }
}

有什么建议吗?

编辑:第一个显然是有效的,因为我创建了响应对象,填充它,将它保存到数据库中,并返回创建的对象。第二个是从数据库中读取数据。这些值在db中是正确的。

下面是操作顺序:控制器调用由接口定义的服务实现。服务实现调用存储库,这使得db查询。以下是查询:

代码语言:javascript
复制
@Query(value="select * from strategy", nativeQuery = true)
List<Response> getAllStrategies();
EN

回答 1

Stack Overflow用户

发布于 2020-12-06 19:09:25

您可以使用以下示例获得所需的响应:

Pojo.java

代码语言:javascript
复制
import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public class Pojo {
    private String name;
}

DemoRestController.java

代码语言:javascript
复制
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Arrays;
import java.util.List;

@RestController
@RequestMapping("/api/v1")
public class DemoRestController {
  @GetMapping("/single")
  public ResponseEntity<Pojo> single() {

    return ResponseEntity.ok(new Pojo("one"));
  }

  @GetMapping("/multiple")
  public ResponseEntity<List<Pojo>> multiple() {
    return ResponseEntity.ok(Arrays.asList(new Pojo("one"), new Pojo("two")));
  }
}

输出-单

代码语言:javascript
复制
{
"name": "one"
}

输出-多

代码语言:javascript
复制
[
   {
    "name": "one"
   },
   {
    "name": "two"
   }
]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65171828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档