数据交换格式
一、什么是数据交换格式
在计算机的不同程序之间,或者不同的编程语言之间进行交换数据,也需要一种大家都能听得懂得‘语言’,这就是数据交换格式,它通过文本以特定的形式来进行描述数据。
二、常用的几种数据交换格式
客户端常用的数据交换格式有xml、json、yaml。
1、JSON(JavaScript Object Notation)
JSON是一种轻量级的文本数据交换格式,在语法上与创建JavaScript对象的代码相同,由key|value(键|值)构成。
JSON的格式:
a:数据在名称|值对中
b.数据由逗号分隔
c.大括号保存对象
d.中括号保存数组
{"dates": {"date": [{"id": "1","name": "JSON","abb": "JavaScript Object Notation"},{"id": "2","name": "XML","abb": "eXtensible Markup Language"},{"id": "3","name": "YAML","abb": "Yet Another Markup Language"}]}
JSON的优点:
a.具有自我描述性,易于阅读编写,也易于机器解析与生成
b.使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON
c.非常适用于服务器与JavaScript交互
使用JSON:
a.读取JSON字符串
b.用eval()或者parse()处理字符串
2.XML(eXtensible Markup Language)
可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。
XML的格式:
a.声明:定义XML文件版本以及字符集
b.根标签:树形结构的根节点
c.子元素:相对上一级而言,可以自定义,必须有结束标签,对大小写敏感
d.属性:一个元素可以拥有多个名字不同的属性
<?xml version="1.0" encoding="UTF-8" ?>
<dates><date><id>1</id><name>JSON</name><abb>JavaScript Object Notation</abb></date><date><id>2</id><name>XML</name><abb>eXtensible Markup Language</abb></date><date><id>3</id><name>YAML</name><abb>Yet Another Markup Language</abb></date>
</dates>
使用XML:
a.读取XML文档
b.使用XML DOM循环遍历文档
c.读取值并存储变量
3、YAML(Yet Another Markup Language)
YAML是一种直观的能够被电脑识别的的数据序列化格式
YAML的格式:
a.结构用缩进表示
b.连续项目用‘-’表示
c.key|value用‘:’分隔
dates: date: - id: 1name: JSONabb: "JavaScript Object Notation"- id: 2name: XMLabb: "eXtensible Markup Language"- id: 3name: YAMLabb: "Yet Another Markup Language"
YAML的适用范围:
a.由于实现简单,解析成本低,特别适合在脚本语言中使用
b.YAML比较适合做序列化。因为它是宿主语言数据类型直转的。
c.YAML做配置文件也不错。比如Ruby on Rails的配置就选用的YAML。
YAML的问题:
由于兼容性问题,不同语言间的数据流转,建议不要用YAML!!!
还有一种表达方式是CSV(逗号分隔符),使用表格和分隔符来表示数据的格式,本文就不在多加叙述,有兴趣的读者可以自己去了解一下。本文列出的三者相较而言,JSON与XML使用的更加广泛一点。并且JSON和XML从实现方法比较而言,不难看出,JSON比XML更快更易使用,个人更加推崇JSON一点。当然,具体情况还得具体分析,合理的使用这些数据交换格式,我们才能够写出更加优秀、强大的代码!
4、CSV(Comma Separated Values)
CSV文件是一种纯文本文件,用于存储表格和电子表格信息。内容通常是由文本、数字或日期组成的表格。使用将数据存储在表中的程序可以轻松导入和导出CSV文件。
CSV的格式:
通常CSV文件的第一行包含表格列标签。后面的每一行表示表中的一行。逗号分隔行中的每个单元格,这就是名称的来源。

相关文章:
数据交换格式
一、什么是数据交换格式 在计算机的不同程序之间,或者不同的编程语言之间进行交换数据,也需要一种大家都能听得懂得‘语言’,这就是数据交换格式,它通过文本以特定的形式来进行描述数据。 二、常用的几种数据交换格式 客户端常…...
电力系统卫星授时信号安全隔离装置防护方案
电力系统是国家关键基础设施, 电力安全关系国计民生, 是国家安全的重要保障, 与政治安全、经济安全、 网络安全、社会安全等诸多领域密切关联。电网运行情况瞬息万变,为了在其发生事故时能够及时得到处理,需要统一的时…...
【编程TOOL】VC++6.0下载安装配置使用保姆式教程
目录 编辑 1.软件介绍 2.软件下载 3.软件安装 3.1.下载得到可执行文件并双击进行安装 3.2. 点击下一步 3.3. 选择安装位置 3.4. 勾选“创建桌面快捷方式”并点击下一步 5. 点击安装并等待 3.6. 先取消运行,后点击完成,软件即安装完毕 4.兼容性配置 4.1…...
组织机构代码是哪几位?营业执照怎么看组织机构代码?
组织机构代码是哪几位? 组织机构代码通常指的是组织机构代码证上的一组特定数字,它用于唯一标识一个组织或机构。在中国,组织机构代码由9位数字组成,前8位是本体代码,最后1位是校验码。这组代码是按照国家有关标准编制的&#x…...
nginx禁止ip访问,只允许域名访问
无论ip直接访问,还是通过域名访问,最终都是通过ip访问到服务器浏览器访问时会携带Host参数,通过ip访问时携带的是ip,通过域名访问时携带的是域名nginx收到请求后判断host的值,如果判断出不是通过域名访问的则拒绝&…...
10组Python面试高频问题与详尽解答指南
大家好,你们准备好了吗?面试官们总喜欢出其不意地问些让人头大的问题。别担心,今天我来帮你们梳理10个Python面试中的热门难题,让你的回答既专业又有趣!让我们一起变身Python高手吧! 1. 问题: 什么是Pytho…...
使用SpringBoot将中国地震台网数据保存PostGIS数据库实践
目录 前言 一、数据转换 1、Json转JavaBean 2、JavaBean与数据库字段映射 二、空间数据表设计 1、表结构设计 三、PostGIS数据保存 1、Mapper接口定义 2、Service逻辑层实现 3、数据入库 4、运行实例及结果 总结 前言 在上一篇博客中基于Java的XxlCrawler网络信息爬…...
后端返回树结构
出参结构 Getter Setter public class TreeResponse implements Serializable {// 主键private Long id;// 父级节点private Long parentId;// 层级private Byte layer;// 编码private String docCode;// 名称private String docName;// 子节点private List<TreeResponse&g…...
C语言——通讯录的实现
一.前言 嗨嗨嗨,又和大家见面了!前面我们讲到了如何实现一个循序表。现在我们开始讲解如何基于循序表来实现通讯录功能。 二.正文 通讯录中的SeqlList.h #pragma once //#define SLDateType int #include<stdio.h> #include<stdlib.h> #…...
Next-Scale Prediction、InstantStyle、Co-Speech Gesture Generation
本文首发于公众号:机器感知 Next-Scale Prediction、InstantStyle、Co-Speech Gesture Generation Visual Autoregressive Modeling: Scalable Image Generation via Next-Scale Prediction We present Visual AutoRegressive modeling (VAR), a new generation p…...
class中 padding和margin的用法;
如果我们想要移动盒子等的位置 ,除了可以用相对定位和绝对定位还可以用margin 和paddinng; 结构如图所示 margin和padding的用法: padding和margin后面可以跟1或2或3或4个数,按照顺序分别是上,右,下&…...
单独使用YOLOV9的backbone网络
前言 YOLO系列的网络结构都是通过.yaml来进行配置的,当要单独想使用其中的backbone网络时,可以通过yaml配置文件来进行网络搭建。 backbone的yaml配置文件与网络结构 backbone:[[-1, 1, Silence, []], # conv<...
WordPress JS Support Ticket插件 RCE漏洞复现
0x01 产品简介 WordPress和WordPress plugin都是WordPress基金会的产品。JS Support Ticket是使用在其中的一套开源票务系统插件。 0x02 漏洞概述 WordPress中的JS Support Ticket插件存在未经上传漏洞,未经身份验证的攻击者可以上传恶意脚本的服务器,执行任意指令,从而获…...
加盟代理短视频无人直播项目,开启互联网线上经营新模式
随着短视频行业的快速发展和用户数量的不断增长,短视频无人直播项目成为了近年来备受关注的创业机会。本文将分享如何加盟代理短视频无人直播项目,开启属于自己的经营新模式。 一、了解无人直播项目的核心优势 短视频无人直播项目是结合了短视频与直播的…...
spring高级篇(一)
1、ApplicationContext与BeanFactory BeanFactory是ApplicationContext的父级接口:(citlaltu查看类关系图) 在springboot的启动类中,我们通过SpringApplication.run方法拿到的是继承了ApplicationContext的ConfigurableApplicatio…...
免费的GPT-3.5 API服务aurora
什么是 aurora ? aurora 是利用免登录 ChatGPT Web 提供的无限制免费 GPT-3.5-Turbo API 的服务,支持使用 3.5 的 access 调用。 【注意】:仅 IP 属地支持免登录使用 ChatGPT的才可以使用(也可以自定义 Baseurl 来绕过限制&#x…...
突破编程_C++_网络编程(Windows 套接字(处理 TCP 粘包问题))
1 TCP 协议与粘包问题概述 1.1 TCP 粘包的产生原因 TCP粘包问题的产生原因涉及多个方面,主要的原因如下: 首先,发送方在发送数据时,由于TCP协议为提高传输效率而采用的Nagle算法,可能会将多个小数据包合并成一个大数…...
【训练营】DateWhale——动手学大模型应用开发(更新中)
文章目录 写在前面大模型简介LLM简介RAG简介LangChain开发框架开发LLM应用的整体流程 写在前面 大模型时代从GPT爆发开始到现在已有一年多了,深度学习发展之快无法想象,一味感叹技术发展速度超越个人学习速度是没用的,倒不如花点时间参加一些…...
【学习笔记十九】EWM Yard Management概述及后台配置
一、EWM Yard堆场管理业务概述 1.Yard Management基本概念 YARD管理针对的是库房以外的区域,可以理解为入大门开始到库门之前的这部分的区域 堆场结构 像在仓库中一样,将相应仓位映射为堆场仓位,可将其分组到堆场分区。场地中可能具有以下结…...
【环境搭建】(五)Ubuntu22.04安装cuda_11.8.0+cudnn_8.6.0
一个愿意伫立在巨人肩膀上的农民...... 设备配置: 一、安装GCC 安装cuda之前,首先应该安装GCC,安装cuda需要用到GCC,否则报错。可以先使用下方指令在终端查看是否已经安装GCC。 gcc --version 如果终端打印如下则说明已经安装…...
RANSAC算法调参指南:迭代次数和容差阈值到底怎么设?附Python/Matlab实例
RANSAC算法实战调参手册:从理论到代码的深度解析 在三维重建、自动驾驶和工业检测等机器视觉应用中,数据噪声和异常值一直是模型拟合的噩梦。传统最小二乘法就像一位过分认真的学生,试图让所有数据点都满意,结果却被少数离群点带偏…...
函数调用(Function Calling)深度集成:让 AI 安全执行企业 API
系列导读 你现在看到的是《Spring AI 企业级集成与场景实践:从零搭建智能应用》的第 5/10 篇,当前这篇会重点解决:展示如何让 AI 安全可控地操作企业后端服务,实现真正的智能体能力。 上一篇回顾:第 4 篇《检索增强生成(RAG)实战:Spring AI 集成向量数据库实现知识问…...
凌扬微优势代理 LY3206S / LY3206L 多模式电机驱动芯片 SOP8 技术解析
在剃须刀、理发剪、毛球修剪器等便携式马达产品中,需要一款集成锂电池充电管理、电机驱动、多种档位模式(1/2/3档)以及使能控制的芯片,以简化电路设计并满足不同产品需求。LY3206是一款集成了锂电池充电管理模块、电机驱动模块、续…...
RPG Maker Decrypter终极指南:轻松解密游戏资源文件
RPG Maker Decrypter终极指南:轻松解密游戏资源文件 【免费下载链接】RPGMakerDecrypter Tool for decrypting and extracting RPG Maker XP, VX and VX Ace encrypted archives and MV and MZ encrypted files. 项目地址: https://gitcode.com/gh_mirrors/rp/RPG…...
AMD锐龙处理器深度调优终极指南:5种专业级配置策略
AMD锐龙处理器深度调优终极指南:5种专业级配置策略 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitco…...
TI INA333数据手册没细说的5个细节:增益电阻怎么选?温漂怎么算?你的电路可能一直没优化
INA333电路设计进阶指南:数据手册没告诉你的5个关键优化点 在精密测量电路设计中,INA333作为TI经典的仪表放大器,被广泛应用于传感器信号调理、医疗设备和工业控制等领域。虽然数据手册提供了基本参数和典型应用电路,但许多工程师…...
收藏!AI黄金三年,小白也能入局的5大高薪岗位解析
文章分析了AI应用与智能体时代的就业趋势,指出AI正重塑各岗位能力结构并创造新职业。未来三年,企业对AI应用工程师、AIAgent设计师、AI自动化运营、AI产品经理及RAG应用构建等岗位需求激增,这些岗位门槛相对较低但薪资可观。文章强调…...
RE正则提取数字
RE正则提取数字import resddfff1234567890aasdfff s1s[::-1] print(fs:{s};s1:{s1}) option_str re.sub("\D", "", s) print(option_str )...
基于ESP8266与ADC同步解调实现远距离反射式光电检测:ITR8307实战
1. 反射式光电检测的必要性 在智能车竞赛中,节能信标组的设计一直面临一个棘手问题:传统磁铁触发方式容易导致对抗比赛中车模相互吸附。我亲眼见过两辆精心调校的车模因为磁铁吸引力"难舍难分"的尴尬场景,这直接影响了比赛公平性和…...
AI Agent配置文件供应链安全:AgentLint静态分析工具实战指南
1. 项目概述与核心价值最近在折腾AI编程助手,比如Claude Code和Cursor,发现它们的配置文件(.claude/、CLAUDE.md、.cursorrules)功能强大得有点吓人。这些文件不仅能定义代码风格,还能配置“技能”(Skills&…...
