Post(前端传参/后端接收参数)

本文深入探讨了前后端数据交互过程,详细解析了前端如何通过JSON格式传递参数至后端,以及后端如何利用Java的Map和List进行参数接收与解析。同时,文章还介绍了从数据库查询返回数据的处理方式及上传参数的常见类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前端传参:

{"acoount":"acoount","list":[{"planProjectId":"Lnb1504070925-F"},{"planProjectId":"LNB1901140676"}]}

后端接收参数:

@RequestBody List<Map<String,Object>> maps

@RequestBody   Map<String, Object> maps

HttpServletRequest   request

@RequestParam("loginName") String name

public VolteResponse postApplySiteId(@RequestBody Map<String, Object> requestMap) {
        List<Map<String, Object>> list = (List<Map<String, Object>>) requestMap.get("list");
        String acoount = requestMap.get("acoount").toString();

        return  null;

}

接受数据库查询返回数据

List<RptCfgAna> list

List<Map<String, Object>> list

UserAccount userAccount

int t或者String   sdsd

上传参数

Map,对象,基本数据类型

### 前后端数据传输中的 JSON 转换方法 在前后端交互过程中,JSON 是一种广泛使用的轻量级数据交换格式。为了实现前端后端传递复杂对象,通常需要将 JavaScript 对象序列化为 JSON 字符串。 #### 1. **前端将对象转换为 JSON 字符串** JavaScript 提供了内置的方法 `JSON.stringify` 来完成这一操作。该方法能够将 JavaScript 对象或数组转化为标准的 JSON 字符串[^1]。 ```javascript const obj = { name: "Alice", age: 25 }; const jsonString = JSON.stringify(obj); console.log(jsonString); // 输出 '{"name":"Alice","age":25}' ``` #### 2. **通过 HTTP 请求发送 JSON 数据** 当使用 AJAX 或 Fetch API 向服务器发送 POST 请求,可以通过设置请求头 `Content-Type: application/json` 并将 JSON 字符串作为请求体的一部分来传递数据[^3]。 ```javascript fetch('https://example.com/api', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ key: 'value' }) }) .then(response => response.json()) .then(data => console.log(data)); ``` #### 3. **后端接收并解析 JSON 数据** 后端框架(如 Spring Boot、Django 等)通常支持自动反序列化 JSON 数据为对应的编程语言对象。例如,在 Java 中可以利用 Jackson 库将 JSON 字符串映射至 POJO (Plain Old Java Object)[^2]。 ```java ObjectMapper objectMapper = new ObjectMapper(); MyClass myObject = objectMapper.readValue(jsonString, MyClass.class); ``` 而在 Python 的 Flask 或 Django 框架中,则可通过 `request.get_json()` 方法获取已解析的对象。 #### 4. **处理 Long 类型精度丢失问题** 需要注意的是,由于 JavaScript 的 Number 类型基于 IEEE 754 双精度浮点数表示法,因此可能会遇到数值溢出的情况,特别是针对大整数(如数据库主键 ID)。为了避免此类问题的发生,建议采用字符串形式存储这些值或者借助第三方库(比如 FastJSON)来进行更精确的转换[^4]。 ```python import json data = {"id": 9223372036854775807} # 大于 JS Safe Integer Limit response = app.test_client().post('/endpoint', json=data) # Backend Code Example with Redis Integration and Precision Handling redis_value = redis_instance.get(key) if redis_value is not None: result_obj = json.loads(redis_value) # Convert String back to Dict/Obj safely. else: computed_result = compute_expensive_operation() redis_instance.setex(key, ttl_seconds, value=json.dumps(computed_result)) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值