后端接收从前端传过来的数据的4种方式

接收前端传到后端的数据的4种方式

1,以查询字符串的方式传入
def test(request): #查询字符串方式传参的获取
    a = request.GET.get('a')  #a为健
    b = request.GET.getlist('b') #一建多值的情况(QuerySet)
    return a,b
2,url传参的方式
def test1(request,x,y): #url方式传参的接收
    print(x,y)
    return x+y
3,以form_data方式传输
def test2(request): #form-data方式传参的接收
    name = request.POST.get('name')
    password = request.POST.get('password')  #列表方式用getlist()方法
    return name
4,以json数据传输
import json

def get_body_json(request):
    # 获取 json 类型数据: 
    json_bytes = request.body
    # 将 bytes 类型转为 str
    json_str = json_bytes.decode()

    # python3.6 及以上版本中, json.loads() 方法可以接收 str 和 bytes 类型
    #但是 python3.5 以及以下版本中, json.loads() 方法只能接收 str, 
    # 3.5 需要有上面的编码步骤.

    req_data = json.loads(json_str)
    print(req_data['a'])
    print(req_data['b'])
    return HttpResponse('OK')
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Java 后端接收前端传过来的列表(List)和映射(Map)数据,通常需要使用框架或库来解析 HTTP 请求体中的 JSON 数据。以下是一个使用 Spring Boot 框架接收前端来的 JSON 数据并将其转换为 Java 对象的示例代码: ```java import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.Map; @RestController public class DataController { @PostMapping("/api/data") public void handleData(@RequestBody Map<String, Object> data) { List<Integer> list = (List<Integer>) data.get("list"); List<String> arr = (List<String>) data.get("arr"); Map<String, String> map = (Map<String, String>) data.get("map"); // Do something with the received data // ... } } ``` 在上面的代码中,我们使用 `@RequestBody` 注解将 HTTP 请求体中的 JSON 数据转换为 Map<String, Object> 对象,然后从中获取列表(List)和映射(Map)数据。如果需要将列表(List)和映射(Map)数据转换为具体的 Java 对象,可以使用 Jackson 库进行反序列化。例如,将列表数据转换为 List<Integer> 对象,可以使用以下代码: ```java List<Integer> list = objectMapper.convertValue(data.get("list"), new TypeReference<List<Integer>>(){}); ``` 其中,`objectMapper` 是 Jackson 库中的对象映射器,`TypeReference` 是一个带有泛型参数的类,用于指定反序列化的类型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值