You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Angular的$http通过GET请求向Java Spring传递对象数组

嗨,我来帮你搞定把前端的MyObjects数组传到服务器端List的问题,分前端发送和后端接收两部分给你讲清楚:

前端发送数组数据

首先得确保你的MyObjects数组能正常序列化为JSON(别包含循环引用这类问题),然后通过POST请求把数据发出去,这里给你两种常用的实现方式:

用原生Fetch API

// 假设这是你的MyObjects数组
const myObjectsArray = [{ id: 1, name: "Obj1" }, { id: 2, name: "Obj2" }];

fetch('/api/receive-objects', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json', // 必须指定这个类型,后端才能正确解析
  },
  body: JSON.stringify(myObjectsArray), // 把数组转成JSON字符串
})
.then(response => response.json())
.then(data => console.log('数据发送成功:', data))
.catch(error => console.error('发送失败:', error));

用Axios(更省心的库)

如果你项目里用了Axios,代码会更简洁,它会自动帮你处理JSON序列化和请求头:

import axios from 'axios';

const myObjectsArray = [{ id: 1, name: "Obj1" }, { id: 2, name: "Obj2" }];

axios.post('/api/receive-objects', myObjectsArray)
  .then(res => console.log('数据发送成功:', res.data))
  .catch(err => console.error('发送失败:', err));
后端接收List的处理

这里给你两种最常用的后端技术栈的实现方式,你可以对应自己的项目来用:

ASP.NET Core(C#)

第一步先定义和前端MyObjects结构完全匹配的模型类:

public class MyObject
{
    // 属性名要和前端对象的属性名对应,大小写敏感,要是前端用小驼峰,你可以加JsonPropertyName注解映射
    public int Id { get; set; }
    public string Name { get; set; }
    // 其他和前端对应的属性...
}

然后在控制器里写接收的接口:

[ApiController]
[Route("api")]
public class ObjectController : ControllerBase
{
    [HttpPost("receive-objects")]
    public IActionResult ReceiveObjects([FromBody] List<MyObject> myObjectsList)
    {
        if (myObjectsList == null || !myObjectsList.Any())
        {
            return BadRequest("没有接收到任何数据");
        }
        // 这里就可以直接用myObjectsList做业务处理了
        return Ok($"成功接收{myObjectsList.Count}个对象");
    }
}

Spring Boot(Java)

同样先定义对应实体类:

public class MyObject {
    private Integer id;
    private String name;
    // 记得给所有属性加getter和setter方法,不然Spring没法绑定数据
    public Integer getId() { return id; }
    public void setId(Integer id) { this.id = id; }
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
}

然后写Controller接口:

@RestController
@RequestMapping("/api")
public class ObjectController {

    @PostMapping("/receive-objects")
    public ResponseEntity<String> receiveObjects(@RequestBody List<MyObject> myObjectsList) {
        if (myObjectsList == null || myObjectsList.isEmpty()) {
            return ResponseEntity.badRequest().body("没有接收到任何数据");
        }
        // 处理你的业务逻辑
        return ResponseEntity.ok(String.format("成功接收%d个对象", myObjectsList.size()));
    }
}
关键注意事项
  • 前端请求必须设置Content-Type: application/json,Axios会自动处理,Fetch需要手动加,不然后端没法正确解析JSON数组。
  • 前后端的对象结构必须严格对应,属性名要一致(或者用注解做映射),否则后端没法把JSON数据绑定到List里。
  • 如果你的MyObjects里有嵌套对象,后端的模型类也要对应加上嵌套的实体类结构。

内容的提问来源于stack exchange,提问作者Cap Barracudas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:57:35