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

1.2 轻量级数据交互格式–JSON

对于接口来说,数据交互大部分都是使用的JSON格式,我们这里说的数据,就是我们上一章里讲解HTTP协议的时候,HTTP协议结构里的实体,也就是放在body里。body里存放需要传输的数据,数据是JSON格式,然后通过HTTP协议来传输给接口,接口再以同样的方式给我们返回。理解了这一层关系,我们就来好好学习一下或者说复习一下JSON。

可能大部分同学工作时间都不长,不太理解JSON对于互联网变革的意义。我们先来看一下10年前,接口的协议是如何定义。

我们举一个简单的例子,接口需要传输的数据为两个人,一个人叫迈克尔乔丹,另一个人叫姚明,在10年前,传输数据使用的协议是XML,XML是一种可扩展标记语言,它叫什么无所谓,我们来看一下它的格式。

<?xml version="1.0" encoding="UTF-8" ?> 迈克尔 乔丹 明 姚

这里首先定义这个文档是XML文档,然后才开始写正文,以root开始,每个字段都有开始和结束标签,比如对应,这是一个完整的标签体,标签体里可以包含另外的标签,这样一层一层包含,才有了对应的数据。XML的格式非常严谨,就像html一样,有了标签头,必须有标签尾。因为严谨,所以导致了它非常繁琐。这就是10年前大部分公司接口传输时使用的协议。这看着是不是就头很大?大家想象一下,如果数据非常庞大,看起来是不是特别费劲,特别容易出错?

在这样的大背景下,诞生了JSON,它是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生产。JSON是基于JavaScript的一

相关文章:

1.2 轻量级数据交互格式–JSON

对于接口来说,数据交互大部分都是使用的JSON格式,我们这里说的数据,就是我们上一章里讲解HTTP协议的时候,HTTP协议结构里的实体,也就是放在body里。body里存放需要传输的数据,数据是JSON格式,然后通过HTTP协议来传输给接口,接口再以同样的方式给我们返回。理解了这一层…...

charCodeAt() 方法

charCodeAt() 是 JavaScript 中用于获取字符串指定位置字符的 Unicode 编码的方法 语法如下&#xff1a; str.charCodeAt(index) str&#xff1a;要获取字符的字符串。index&#xff1a;要获取的字符在字符串中的索引。返回值是一个表示给定索引处字符 Unicode 编码的整数。…...

Flask中redis的配置与使用

注意点&#xff1a; 在__init__.py中需要将redis_store设置成全局变量&#xff0c;这样方便其他文件导入 一、config.py import logging import os from datetime import timedeltafrom redis import StrictRedisclass Config:# 调试信息DEBUG TrueSECRET_KEY os.urandom(3…...

生产者与消费者模型

初识linux之线程同步与生产者消费者模型_生产者线程和消费者线程-CSDN博客 Linux线程&#xff08;三&#xff09;—— 多线程&#xff08;生产者消费者模型、信号量、线程池&#xff09;-CSDN博客...

透析回溯的模板

关卡名 认识回溯思想 我会了✔️ 内容 1.复习递归和N叉树&#xff0c;理解相关代码是如何实现的 ✔️ 2.理解回溯到底怎么回事 ✔️ 3.掌握如何使用回溯来解决二叉树的路径问题 ✔️ 回溯可以视为递归的拓展&#xff0c;很多思想和解法都与递归密切相关&#xff0c;在很多…...

浅谈web性能测试

什么是性能测试&#xff1f; web性能应该注意些什么&#xff1f; 性能测试&#xff0c;简而言之就是模仿用户对一个系统进行大批量的操作&#xff0c;得出系统各项性能指标和性能瓶颈&#xff0c;并从中发现存在的问题&#xff0c;通过多方协助调优的过程。而web端的性能测试…...

Qt 容器QGroupBox带有标题的组框框架

控件简介 QGroupBox 小部件提供一个带有标题的组框框架。一般与一组或者是同类型的部件一起使用。教你会用,怎么用的强大就靠你了靓仔、靓妹。 用法示例 例 qgroupbox,组框示例(难度:简单),使用 3 个 QRadioButton 单选框按钮,与QVBoxLayout(垂直布局)来展示组框的…...

Linux系统解决“Key was rejected by service”

Linux系统下加载驱动模块出现如上错误提示的原因为&#xff1a;此驱动未经过签名。 方法一、关闭Secure Boot 如果是物理机&#xff0c;需要开机进入BIOS&#xff0c;找到“Secure Boot”的选项&#xff0c;然后关闭。 如果是虚拟机&#xff0c;可以打开虚拟设置&#xff0c…...

【C++ Primer Plus学习记录】字符函数库cctype

C从C语言继承了一个与字符相关的、非常方便的函数软件包&#xff0c;它可以简化诸如确定字符是否为大写字母、数字、标点符号等工作&#xff0c;这些函数的原型是在头文件cctype中定义的。 cctype中的字符函数 函数名称返回值isalnum()如果参数是字母或数字&#xff0c;该函数返…...

C# WebSocket简单使用

文章目录 前言Fleck调试工具初始化简单使用 前言 最近接到了一个需求&#xff0c;需要网页实现上位机的功能。那就对数据传输的实时性要求很高。那就只能用WebSocket了。这里简单说一下我的WebSocket如何搭建 Fleck C# WebSocket(Fleck) 客户端:html Winfrom Fleck Github官网…...

uni-app 一些实用的页面模板

时间倒计时 <!-- 时间倒计时 --> <template><view class"container"><view class"flex-row time-box"><view class"time-item">{{ laveTimeList[0] }}</view><text>天</text><view class&qu…...

STM32——震动传感器点亮LED灯

震动传感器简单介绍 若产品不震动&#xff0c;模块上的 DO 口输出高电平&#xff1b; 若产品震动&#xff0c;模块上的 DO 口输出低电平&#xff0c;D0-LED绿色指示灯亮。 震动传感器与STM32的接线 编程实现 需求&#xff1a;当震动传感器接收到震动信号时&#xff0c;使用中断…...

使用 Timm 库替换 YOLOv8 主干网络 | 1000+ 主干融合YOLOv8

文章目录 前言版本差异说明替换方法parse_moedl( ) 方法_predict_once( ) 方法修改 yaml ,加载主干论文引用timm 是一个包含最先进计算机视觉模型、层、工具、优化器、调度器、数据加载器、数据增强和训练/评估脚本的库。 该库内置了 700 多个预训练模型,并且设计灵活易用。…...

PHP中什么是闭包(Closure)?

在PHP中&#xff0c;闭包&#xff08;Closure&#xff09;是一种匿名函数&#xff0c;它可以作为变量传递、作为参数传递给其他函数&#xff0c;或者被作为函数的返回值。闭包可以在定义时捕获上下文中的变量&#xff0c;并在以后的执行中使用这些变量。闭包在处理回调函数、事…...

boost::graph学习

boost::graph API简单小结 boost::graph是boost为图算法提供的API&#xff0c;简单易用。 API说明 boost::add_vertex 创建一个顶点。 boost::add_edge 创建一条边。 boost::edges 获取所有的边。 boost::vertices 获取所有的顶点。 graph.operator[vertex_descriptor] 获…...

【C语言:动态内存管理】

文章目录 前言1.malloc2.free3.calloc4.realloc5.动态内存常见错误6.动态内存经典笔试题分析7.柔性数组8.C/C中的内存区域划分 前言 文章的标题是动态内存管理&#xff0c;那什么是动态内存管理&#xff1f;为什么有动态内存管理呢&#xff1f; 回顾一下以前学的知识&#xff…...

【Python基础】迭代器

文章目录 [toc]什么是迭代可迭代对象判断数据类型是否是可迭代类型 迭代器对可迭代对象进行迭代的本质获取可迭代对象的迭代器通过迭代器获取数据StopIteration异常 自定义迭代器__iter__()方法__next__()方法判断数据类型是否是可迭代类型自定义迭代器案例分离模式整合模式 fo…...

QVTK 可视化

#ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow>#include <vtkNew.h> // 智能指针 #include <QVTKOpenGLNativeWidget.h> #include <vtkCylinderSource.h> // 圆柱#include <vtkPolyDataMapper.h&g…...

【初阶C++】入门(超详解)

C入门 前言1. C关键字(C98)2. 命名空间2.1 命名空间定义2.2 命名空间使用2.3嵌套命名空间 3. C输入&输出4. 缺省参数4.1 缺省参数概念4.2 缺省参数分类 5. 函数重载5.1 函数重载概念5.2 C支持函数重载的原理--名字修饰(name Mangling) 6. 引用6.1 引用概念6.2 引用特性6.3 …...

Java正则表达式的使用

标题&#xff1a;Java正则表达式的使用 介绍&#xff1a; 正则表达式是一种强大的文本匹配模式和搜索工具。在Java中&#xff0c;通过使用正则表达式&#xff0c;我们可以快速有效地进行字符串的匹配、查找和替换。本文将介绍Java正则表达式的基本使用方法&#xff0c;并提供相…...

ai辅助部署openclaw:让快马智能适配ubuntu环境与反爬策略

AI辅助部署OpenClaw&#xff1a;让快马智能适配Ubuntu环境与反爬策略 最近在尝试用OpenClaw抓取一些动态加载的网站数据&#xff0c;发现直接部署基础版本根本行不通。目标网站不仅有动态渲染的内容&#xff0c;还设置了各种反爬机制。好在发现了InsCode(快马)平台的AI辅助开发…...

OpenClaw飞书机器人实战:Qwen3-32B-Chat私有镜像接入

OpenClaw飞书机器人实战&#xff1a;Qwen3-32B-Chat私有镜像接入 1. 为什么选择OpenClaw飞书本地大模型&#xff1f; 去年我接手了一个小团队的效率工具改造项目&#xff0c;核心需求是"在不泄露内部数据的前提下&#xff0c;实现自动化日报生成和文件归档"。尝试过…...

在CentOS上部署RustDesk私有中继服务器:从零搭建到安全配置

1. 环境准备&#xff1a;搭建RustDesk私有中继服务器的基石 在CentOS系统上部署RustDesk私有中继服务器&#xff0c;首先需要确保基础环境配置正确。我遇到过不少因为环境问题导致的部署失败案例&#xff0c;所以这部分我会详细说明每个环节的注意事项。 1.1 系统更新与基础依赖…...

L1-064 估值一亿的ai核心代码 (分数20)字符串处理

•无论用户说什么&#xff0c;首先把对方说的话在一行中原样打印出来&#xff1b;•消除原文中多余空格&#xff1a;把相邻单词间的多个空格换成 1 个空格&#xff0c;把行首尾的空格全部删掉&#xff0c;把标点符号前面的空格删掉&#xff1b; •把原文中所有大写英文字母变成…...

从“看见光点”到“看懂世界”:视觉重建让这个世界变得更近一些

三十多年前&#xff0c;“让盲人重新看见”更像一句带有未来感的科学想象。而今天&#xff0c;这件事已经进入临床试验和真实的人体研究。视觉重建之所以被视为脑机接口里最具挑战性的方向之一&#xff0c;不只是因为它要解决“能不能刺激大脑”的问题&#xff0c;更因为它要回…...

[STM32问题解决(2)]编译错误:Error: L6218E的深度解析与实战排查指南

1. 认识Error: L6218E编译错误 当你正在Keil MDK环境下开发STM32项目时&#xff0c;突然弹出一个红色错误提示&#xff1a;"Error: L6218E: Undefined symbol xxx (referred from xxx.o)"&#xff0c;这可能是每个STM32开发者都会遇到的经典问题。我第一次遇到这个错…...

千问3.5-2B轻量化部署教程:边缘设备适配可能性分析与CPU回退方案说明

千问3.5-2B轻量化部署教程&#xff1a;边缘设备适配可能性分析与CPU回退方案说明 1. 模型简介 千问3.5-2B是Qwen系列中的小型视觉语言模型&#xff0c;专为边缘计算场景优化设计。这个2B参数量的版本在保持视觉理解能力的同时&#xff0c;大幅降低了硬件需求。 模型核心能力…...

保姆级教程:用STM32的定时器输入捕获功能,手把手教你解码任意红外遥控器

STM32定时器输入捕获实战&#xff1a;从零解码未知协议红外遥控信号 红外遥控技术在家电控制领域已有数十年历史&#xff0c;但面对市面上五花八门的遥控协议&#xff0c;开发者常常陷入协议适配的泥潭。本文将带你突破协议限制&#xff0c;利用STM32的定时器输入捕获功能&…...

VCS编译SystemVerilog时,那个‘-P’选项你加对了吗?详解Verdi PLI配置

VCS编译SystemVerilog时&#xff0c;那个‘-P’选项你加对了吗&#xff1f;详解Verdi PLI配置 在芯片验证的日常工作中&#xff0c;VCSVerdi的组合堪称黄金搭档。但当你满怀信心地敲下编译命令&#xff0c;却发现怎么也生成不了关键的fsdb波形文件时&#xff0c;那种挫败感简直…...

OpCore-Simplify:如何将黑苹果EFI配置从3小时缩短到15分钟?

OpCore-Simplify&#xff1a;如何将黑苹果EFI配置从3小时缩短到15分钟&#xff1f; 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 在开源系统定制领域…...