Java&Vue 借助json传递数据

本文介绍了如何使用Vue.js中的axios库从前端发送JSON数据到SpringBoot后端API,并展示了如何在后端使用SpringMVC处理这些请求,包括接收和处理JSON对象。

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

由前端向后端发送一个json键值对

<template>
  <div>
    <button @click="sendRequest">发送请求</button>
  </div>
</template>

<script setup>
import axios from 'axios';

const sendRequest = () => {
  const jsonData = {
    key1: 'value1',
    key2: 'value2',
  };

  const jsonString = JSON.stringify(jsonData);

  axios.post('http://localhost:8080/test', jsonString, {
    headers: {
      'Content-Type': 'application/json',
    },
  })
  .then(response => {
    console.log('成功发送请求', response);
    // 处理后端返回的响应
  })
  .catch(error => {
    console.error('发送请求失败', error);
    // 处理请求失败情况
  });
};
</script>

package com.example.myjson;

import org.springframework.web.bind.annotation.*;

@CrossOrigin
@RestController
public class JSONController {

    @PostMapping("/test")
    public String handleJSONRequest(@RequestBody String jsonString) {
        // 这里可以对接收到的JSON字符串进行处理
        System.out.println("接收到的JSON字符串:" + jsonString);

        // 返回一个简单的响应
        return "成功接收到JSON请求";
    }
}

发送一个由前端json包装过的类对象

<template>
  <div>
    <button @click="sendTaskInfo">发送TaskInfo</button>
  </div>
</template>

<script setup>
import axios from 'axios';

const sendTaskInfo = () => {
  // 创建 TaskInfo 对象
  const taskInfo = {
    id: 1,
    task: '完成项目任务',
    startTime: new Date(),
    endTime: new Date(),
    elapsedTime: 3600, // 假设任务耗时为3600秒
  };

  // 将 TaskInfo 对象转换为 JSON 字符串
  const jsonTaskInfo = JSON.stringify(taskInfo);

  // 发送 POST 请求到后端
  axios.post('http://localhost:8080/test', jsonTaskInfo, {
    headers: {
      'Content-Type': 'application/json',
    },
  })
  .then(response => {
    console.log('成功发送 TaskInfo', response);
    // 处理后端返回的响应
  })
  .catch(error => {
    console.error('发送 TaskInfo 失败', error);
    // 处理请求失败情况
  });
};
</script>

public class TaskInfo {
    private int id;
    private String task;
    private Date startTime;
    private Date endTime;
    private long elapsedTime;
}
@PostMapping("/test")
    public ResponseEntity<String> handleJSONRequest(@RequestBody TaskInfo taskInfoJson) {
        // 这里 taskInfoJson 就是前端发送过来的 JSON 转换后的 TaskInfo 对象
        System.out.println("接收到的 TaskInfo 对象:" + taskInfoJson);

        // 在这里可以对 TaskInfo 对象进行进一步处理
        // ...

        // 返回一个简单的响应
        return new ResponseEntity<>("成功接收到 TaskInfo 对象", HttpStatus.OK);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值