当前位置: 首页 > article >正文

技术问题汇总:前端怎么往后端传一个数组?

场景

现在一个专门负责复习算法的服务,筛选出了用户今天需要复习的笔记的ids,现在要调用笔记服务根据ids查询的接口。
请问复习服务怎么将ids发到笔记服务,笔记服务怎么接收。

思路

发的时候肯定是用字符串,接收的时候,用List接收到了就接收,接收不到就也用字符串,收到了再解析成数组。

参考代码

发送

// 提取需要复习的笔记 ID
List<Long> reviewNoteIds = reviewList.stream()
        .map(NoteAttributeDTO::getNid)
        .toList();
// 转换成逗号分隔的字符串
String idsStr = reviewNoteIds.stream()
        .map(String::valueOf)
        .collect(Collectors.joining(","));

feign:

// 根据ids查询笔记
@GetMapping("/api/note-service/note/findNotesByIds")
ResultData<List<NoteDTO>> findNotesByIds(@RequestParam("ids") String ids);

接收

用List直接接收

@GetMapping("/findNotesByIds")
    public ResultData<List<Note>> findNotesByIds(@RequestParam("ids") List<Long> ids) {
        if (ids == null || ids.isEmpty()) {
            return ResultData.failure(ResultCodeEnum.FAIL, "笔记 ID 不能为空");
        }
        List<Note> notes = noteService.findNotesByIds(ids);
        return ResultData.success(notes);
    }

先接收成字符串,再解析

// 次接口仅用来测试前端怎么给后端传递一个数组
    @GetMapping("/arrayTest")
    public ResultData<List<Long>> arrayTest(@RequestParam("ids") String ids) {
        // 逗号分隔解析
        List<Long> idList = Arrays.stream(ids.split(","))
                .map(Long::parseLong)
                .collect(Collectors.toList());
        System.out.println(idList);
        return ResultData.success(idList);
    }

总结

远程调用要传数组,传的一方肯定用字符串。收的一方看能用List接收到,就用List,不能用List就也用字符串接收。
额,别的方法还没试过,可能还有更简单的方法,不过我感觉这种暂时够用了,顶多传的时候,再粘几行代码就ok了。


http://www.kler.cn/a/568771.html

相关文章:

  • DeepSeek 与大数据治理:AI 赋能数据管理的未来
  • 第十五届蓝桥杯最后一题 拔河问题
  • 各种传参形式
  • 深入探索 STM32 微控制器:从基础到实践
  • 每日一题——接雨水
  • 2.Exercise
  • 关于时间序列预测
  • 3.16 AI Agent 技术全景解析:从核心能力到企业级应用实践
  • GPT-4.5震撼登场,AI世界再掀波澜!(3)
  • Tkinter和爬虫写的知乎回答下载exe【免费下载】
  • 【STM32F103ZET6——库函数】6.PWM
  • 【软件安装】非华为手机安装华为电脑管家(14.0.5.8 C233)(附带安装包下载地址)
  • 蜈蚣博弈(Centipede Game)
  • Oracle性能调优(一):时间模型统计
  • 类似ComfyUI和Midjourney这样的文生图图生图应用的API与服务架构该怎么设计
  • 算法1-2 分数线划定
  • 【蓝桥杯集训·每日一题2025】 AcWing 5437. 拐杖糖盛宴 python
  • 【力扣】2626. 数组归约运算——认识循环
  • P1596 [USACO10OCT] Lake Counting S(深度优先搜索)
  • Matlab 大量接单