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

JSON数据格式转换

在前端 Vue 3 中,处理 JSON 数据通常涉及到从 API 获取 JSON解析 JSON 数据、或者将 JavaScript 对象转换为 JSON 字符串。这里是几种常见的 JSON 转换操作

一、从 JSON 字符串解析为 JavaScript 对象

如果你从 API 或其他地方收到一个 JSON 字符串,可以使用 JSON.parse() 来将它转换为 JavaScript 对象。

let jsonString = '{"name": "John", "age": 30, "city": "New York"}';
let jsonObject = JSON.parse(jsonString);

console.log(jsonObject.name);  // 输出: John

二、将 JavaScript 对象转换为 JSON 字符串

let user = {
  name: "Alice",
  age: 25,
  city: "London"
};

let jsonString = JSON.stringify(user);

console.log(jsonString);
// 输出: {"name":"Alice","age":25,"city":"London"}

三、 在 Vue 3 中处理 JSON 数据

a. 获取 JSON 数据并解析

通常,前端会通过 API 请求(如 fetchaxios)获取 JSON 数据。在 Vue 3 中,你可以使用 onMounted 钩子来发送请求并处理返回的 JSON 数据。

<template>
  <div>
    <h1>User Info</h1>
    <p v-if="user">Name: {{ user.name }}</p>
    <p v-if="user">Age: {{ user.age }}</p>
    <p v-if="user">City: {{ user.city }}</p>
  </div>
</template>

<script>
  import { ref, onMounted } from 'vue';

  export default {
    setup() {
      const user = ref(null);

      // 获取数据
      onMounted(async () => {
        try {
          const response = await fetch('https://api.example.com/user');
          const data = await response.json();  // 解析为 JSON 对象
          user.value = data;  // 将 JSON 对象存储到响应式变量
        } catch (error) {
          console.error("Error fetching data:", error);
        }
      });

      return {
        user
      };
    }
  };
</script>

在上面的代码中:

  • 使用 fetch 获取 JSON 数据。
  • 使用 response.json() 解析返回的 JSON 字符串。
  • 通过响应式变量 user 在模板中显示数据。
b. 发送 JavaScript 对象作为 JSON

当你需要将 JavaScript 对象作为 JSON 发送到后端时,可以使用 fetchaxios,并将数据通过 JSON.stringify() 转换成字符串。

<template>
  <div>
    <button @click="sendData">提交数据</button>
  </div>
</template>

<script>
import { ref } from 'vue';

export default {
  setup() {
    const sendData = async () => {
      const data = {
        name: 'Tom',
        age: 28,
        city: 'Berlin'
      };

      try {
        const response = await fetch('https://api.example.com/user', {
          method: 'POST',
          headers: {
            'Content-Type': 'application/json'
          },
          body: JSON.stringify(data)  // 将对象转换为 JSON 字符串
        });
        
        const result = await response.json();
        console.log(result);  // 返回结果
      } catch (error) {
        console.error('Error:', error);
      }
    };

    return {
      sendData
    };
  }
};
</script>

在这段代码中:

  • 使用 JSON.stringify(data) 将 JavaScript 对象转换为 JSON 字符串,并通过 fetchbody 发送。
  • 设置 Content-Type: application/json 以告知服务器这是 JSON 格式的数据。
c. 使用 Axios 发送和接收 JSON

axios 是一个流行的 HTTP 客户端库,处理 JSON 数据也非常方便。默认情况下,axios 会自动将响应数据解析为 JSON 对象。

<template>
  <div>
    <button @click="sendData">提交数据</button>
  </div>
</template>

<script>
import { ref } from 'vue';
import axios from 'axios';

export default {
  setup() {
    const sendData = async () => {
      const data = {
        name: 'Tom',
        age: 28,
        city: 'Berlin'
      };

      try {
        const response = await axios.post('https://api.example.com/user', data);  // 直接传递对象,axios会自动转换为 JSON
        console.log(response.data);  // 返回的 JSON 数据
      } catch (error) {
        console.error('Error:', error);
      }
    };

    return {
      sendData
    };
  }
};
</script>


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

相关文章:

  • 读《SQL经典实例》学数据库(系列一)
  • MyBatis(四)参数与配置详解
  • Spring Boot Actuator 详细介绍
  • 浅谈云计算19 | OpenStack管理模块 (上)
  • 我的世界-与门、或门、非门等基本门电路实现
  • Java中的依赖注入是什么?它如何工作?
  • 使用C语言实现栈的插入、删除和排序操作
  • thinkphp8.0 likeadmin 框架添加API 文档自动生成工具 apidoc支持
  • QT信号槽 笔记
  • Apache Web服务器技术指南 - 基于Kylin麒麟操作系统
  • 【1】认识思科无线控制器
  • WebSocket——推送方案选型
  • Windows 11开发深度实践:从零开始构建一个功能丰富的UWP应用
  • JavaWeb 前端基础 html + CSS 快速入门 | 018
  • kafka集群安装Raft 协议
  • 《AI语言模型的关键技术探析:系统提示、评估方法与提示工程》
  • python 利用pandas实现从CSV导出并格式化后写入.jsonl文件
  • Redis Cluster 集群
  • 【Javascript Day8】计算机存储方式、方法定义方式、作用域、预解析、对象
  • linux手动安装mysql5.7
  • 浅谈安科瑞电能质量监测和治理产品在分布式光伏电站的应用-安科瑞 蒋静
  • element-ui制作多颜色选择器
  • Vue3响应式原理: Proxy实现解析
  • BERT详解
  • linux解压命令(可整理到CSDN)
  • 【gin】模型绑定、参数验证及文件上传go案例演示