常用的 JSON XML INI CSV 数据格式详解

news2025/2/23 6:21:53

目录

  • 0 引言
  • 1 JSON
    • 1.1 数据格式
    • 1.2 应用场景
  • 2 XML
    • 2.1 数据格式
    • 2.2 应用场景
  • 3 INI
    • 3.1 数据格式
    • 3.2 应用场景
  • 4 CSV
    • 4.1 数据格式
    • 4.2 应用场景
  • 5 总结

请添加图片描述

  • 🙋‍♂️ 作者:海码007
  • 📜 专栏:C++专栏
  • 💥 标题:常用的 XML JSON INI 数据格式详解
  • ❣️ 寄语:人生的意义或许可以发挥自己全部的潜力,所以加油吧!
  • 🎈 最后:文章作者技术和水平有限,如果文中出现错误,希望大家能指正

0 引言

在编程开发的过程中会和各种各样的数据接触,很多时候都需要读取某些格式的数据或者写入。所以了解各种常用数据格式很有必要。

1 JSON

1.1 数据格式

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,以其易于阅读和编写的特性而广泛使用。以下是 JSON 数据格式的一些基本元素和示例:

  1. 对象(Object)

    • 由一组键值对组成,用大括号 {} 包裹。
    • 键(Key)是字符串,值(Value)可以是不同类型(如字符串、数字、布尔值、对象、数组等)。
    • 示例:
      {
        "name": "John Doe",
        "age": 30,
        "isMarried": false
      }
      
  2. 数组(Array)

    • 一系列值的有序集合,用方括号 [] 包裹。
    • 数组中的值可以是任何类型,包括对象、数组、字符串等。
    • 示例:
      [
        "apple",
        "banana",
        "cherry"
      ]
      
  3. 字符串(String)

    • 文本数据,用双引号 "" 包裹。
    • 示例:"Hello, World!"
  4. 数字(Number)

    • 整数或浮点数,不用引号包裹。
    • 示例:100, 3.14
  5. 布尔值(Boolean)

    • 表示真 (true) 或假 (false) 的值。
    • 示例:true, false
  6. 空值(null)

    • 表示没有值。
    • 示例:null
  7. 嵌套结构

    • JSON 支持对象和数组的嵌套,可以构建复杂的数据结构。
    • 示例:
      {
        "name": "John Doe",
        "age": 30,
        "address": {
          "street": "123 Main St",
          "city": "Anytown"
        },
        "phoneNumbers": [
          "123-456-7890",
          "987-654-3210"
        ]
      }
      

在 JSON 中,所有字符串必须用双引号。JSON 是数据格式的标准,不包括任何代码执行功能,因此它是一种安全的数据交换格式。由于其简洁和易于解析的特点,JSON 在 Web 开发、配置文件、API 通信等领域非常流行。

1.2 应用场景

JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,在现代计算领域有着广泛的应用场景,其主要特点是易于人类阅读和编写,同时也易于机器解析和生成。以下是 JSON 数据格式的一些主要应用场景:

  1. Web 应用和 API 通信

    • JSON 是 Web 应用和服务之间进行数据交换的首选格式,特别是在 RESTful API 中。
    • 由于其与 JavaScript 的紧密结合,它在 AJAX(Asynchronous JavaScript and XML)请求中常被用于前后端之间的数据传输。
  2. 配置文件

    • JSON 由于其简洁性,经常用于软件和应用程序的配置文件。
    • 例如,许多 Node.js 项目使用 package.json 文件来存储项目的配置信息、脚本和依赖项。
  3. 数据存储

    • 某些 NoSQL 数据库,如 MongoDB,使用 JSON 或类 JSON 格式(如 BSON)作为其数据存储和查询的格式。
    • JSON 文件也常用于存储和传输结构化数据,尤其是那些不需要复杂查询的场景。
  4. 移动应用开发

    • JSON 在移动应用的开发中广泛用于配置和数据交换。
    • 它被用于 iOS、Android 和跨平台移动应用的服务器通信和数据存储。
  5. 服务器端编程

    • 在服务器端,JSON 用于处理来自客户端的数据,并将处理后的数据发送回客户端。
    • 无论是 Node.js、Python、Ruby 还是其他后端技术,JSON 都是处理 HTTP 请求和响应的常用格式。
  6. 前端开发

    • 在前端开发中,JSON 常用于从服务器获取数据,并动态地显示在网页上。
    • 它也被用于 Web 组件和插件的配置。
  7. 数据交换和集成

    • JSON 作为一种标准化的格式,被用于不同应用程序和系统之间的数据交换。
    • 它是实现第三方服务集成的关键技术,如社交媒体服务、地图服务等。
  8. 物联网(IoT)

    • 在 IoT 领域,JSON 用于设备之间的消息传递和配置文件的格式。
    • 它为各种设备和服务提供了一个轻量级的通信协议。
  9. 云服务

    • 许多云平台和服务提供商(如 AWS、Azure)使用 JSON 格式定义和管理云资源。
  10. 日志记录

    • JSON 格式用于记录应用程序和系统日志,方便日后的分析和处理。

由于其跨平台和语言中立的特性,JSON 成为现代软件开发和互联网技术中不可或缺的组成部分。

2 XML

2.1 数据格式

XML(eXtensible Markup Language)是一种用于标记电子文档的可扩展标记语言,设计用于存储和传输数据。XML 是自描述性的,意味着它不仅携带数据信息,还描述数据的结构。以下是 XML 数据格式的一些基本元素和示例:

  1. 标签(Tags)

    • XML 数据由标签定义,类似于 HTML。开始标签 <tag> 和结束标签 </tag> 包裹数据内容。
    • 示例:
      <name>John Doe</name>
      
  2. 属性(Attributes)

    • 标签可以包含属性,用于提供关于元素的额外信息。
    • 示例:
      <person age="30">John Doe</person>
      
  3. 元素(Elements)

    • 由开始标签、内容和结束标签组成的结构称为元素。
    • 元素可以嵌套,形成树状结构。
    • 示例:
      <person>
        <name>John Doe</name>
        <age>30</age>
      </person>
      
  4. 声明(Declaration)

    • XML 文档通常以声明开始,指定 XML 的版本和字符编码。
    • 示例:
      <?xml version="1.0" encoding="UTF-8"?>
      
  5. 注释(Comments)

    • XML 注释用于添加不会被解析的说明文本。
    • 示例:
      <!-- This is a comment -->
      
  6. CDATA(Character Data)

    • CDATA 节用于包含不应由解析器解析的文本数据。
    • 示例:
      <![CDATA[Some unprocessed text data]]>
      
  7. 处理指令(Processing Instructions)

    • 提供给应用程序的指令,格式为 <?target data?>
    • 示例:
      <?xml-stylesheet type="text/xsl" href="style.xsl"?>
      
  8. 命名空间(Namespaces)

    • 用于避免元素名称冲突。
    • 示例:
      <html:table xmlns:html="http://www.w3.org/TR/html4/">
        <html:tr>
          <html:td>Apples</html:td>
          <html:td>Bananas</html:td>
        </html:tr>
      </html:table>
      

XML 是一种非常灵活的格式,可以自定义标签和结构,因此它在数据交换、配置文件、文档处理等许多领域中被广泛应用。

2.2 应用场景

XML(eXtensible Markup Language)是一种灵活且强大的数据描述语言,用于标记和存储数据。它的设计目标是简化数据的共享和传输,特别是在不同的信息系统之间。以下是 XML 数据格式的一些主要应用场景:

  1. Web服务和API

    • XML 是早期 Web 服务(如 SOAP)的主要数据交换格式。
    • 它用于客户端和服务器之间的消息传递,尤其是在需要复杂数据结构时。
  2. 配置文件

    • 许多软件和应用程序使用 XML 文件来存储配置信息。
    • XML 允许创建结构化的配置,易于读取和维护。
  3. 文档处理和发布

    • XML 用于电子书籍、新闻传输、技术文档和其他出版物的创建和管理。
    • 如 ePub 电子书格式就是基于 XML 的。
  4. 数据交换

    • 在企业和组织之间,XML 被用作数据交换的标准格式,特别是在金融、法律、医疗和政府部门。
    • XML 提供了一个平台无关的方法来描述和交换数据。
  5. 办公软件

    • 许多办公软件套件(如 Microsoft Office、OpenOffice)使用 XML 作为文档的存储格式。
    • 例如,Microsoft Office 的 DOCX、XLSX 和 PPTX 文件实际上是 ZIP 压缩的 XML 文件集合。
  6. 网络传输

    • XML 用于互联网上的数据传输,尤其是在需要传输复杂数据结构时。
  7. 数据存储

    • 某些应用程序使用 XML 文件作为轻量级的数据库。
    • 对于小型应用或简单的数据存储需求,XML 提供了一个易于实现的解决方案。
  8. 国际化和本地化

    • XML 由于其对 Unicode 的支持,广泛用于多语言内容的创建和管理。
    • 它允许在一个文档中包含多种语言,方便国际化和本地化。
  9. 医疗信息系统

    • 在医疗信息系统中,XML 用于存储和交换患者数据、临床信息和医学研究数据。
  10. 供应链管理

    • 在供应链管理中,XML 被用于订单处理、库存管理和物流信息的交换。

由于其可扩展性和自描述性,XML 在需要结构化数据存储和精确数据交换的场合非常有用。尽管在某些领域 JSON 等格式开始取代 XML,但在需要高度结构化和复杂数据描述的场景中,XML 仍然是一个重要的选择。

3 INI

3.1 数据格式

INI 文件是一种简单的配置文件格式,通常用于存储程序设置和配置参数。它的结构简单易懂,主要包括以下几个基本组成部分:

  1. 节(Sections)

    • 用于组织配置文件中的不同设置,每个节用方括号 [] 包围。
    • 例如:
      [database]
      
  2. 键值对(Key-Value Pairs)

    • 配置数据存储为键值对,每对数据在一行内,键和值之间通常用等号 = 分隔。
    • 例如:
      username=user123
      password=pass456
      
  3. 注释(Comments)

    • 以分号 ; 或井号 # 开头的行被视为注释,通常用于解释配置项的目的。
    • 例如:
      ; This is a comment
      # Another comment
      
  4. 空行

    • 空行被忽略,可以用于提高配置文件的可读性。

一个完整的 INI 文件示例可能如下所示:

; Database configuration
[database]
username=dbuser
password=dbpass
host=localhost

; Email settings
[email]
server=mail.example.com
port=25
username=user@example.com
password=emailpass

INI 文件由于其简单和直观的格式,常用于程序和应用的配置。虽然它不像 JSON 或 XML 那样灵活,但它的简洁性使得它在许多场景下仍然是一个有效的配置文件选择。

3.2 应用场景

INI(Initialization)文件格式,虽然简单,却在多种应用场景中发挥着重要作用,尤其是在配置管理领域。以下是 INI 文件格式的一些主要应用场景:

  1. 应用程序和软件配置

    • INI 文件经常用于存储应用程序的配置设置。由于其结构简单,它使得配置选项易于阅读和修改。
    • 对于不需要复杂数据结构的配置(例如,设置、偏好和程序参数),INI 文件提供了一个轻量级的解决方案。
  2. 操作系统配置

    • 在早期的 Windows 操作系统中,INI 文件被广泛用于系统和应用程序的配置。
    • 尽管现代操作系统已经转向更复杂的配置文件格式,但在某些旧系统和应用中,INI 文件仍然在使用。
  3. 游戏设置

    • 许多视频游戏使用 INI 文件来存储用户的游戏设置,如图形选项、控制布局和游戏偏好。
    • 这允许玩家通过编辑 INI 文件来自定义他们的游戏体验。
  4. 服务器和网络配置

    • 一些服务器软件和网络工具使用 INI 文件来配置设置,如数据库连接信息、网络参数等。
  5. 桌面软件

    • 许多桌面应用程序,特别是一些传统的或较小的软件,仍然使用 INI 文件来管理用户设置和偏好。
  6. 脚本和自动化

    • 在一些脚本和自动化任务中,INI 文件被用作简单的数据存储和参数传递工具。
    • 它们可以被脚本语言(如 Python、Bash)容易地读取和修改。
  7. 便携式应用程序

    • 对于便携式应用程序,即那些不需要安装就能运行的程序,INI 文件常用于存储程序设置,因为它们可以直接与可执行文件一起携带。
  8. 小型项目和初学者项目

    • 对于小型项目或教育用途,INI 文件由于其简单性,是引导初学者了解配置文件和程序设置的好选择。

总的来说,INI 文件因其简单、直观和易于编辑的特点,在许多需要基本配置管理的应用场景中仍然非常有用。尽管它们不适用于需要复杂数据结构和高级功能的场合,但对于简单应用和项目来说,它们是一种非常合适的配置文件格式。

4 CSV

4.1 数据格式

CSV(Comma-Separated Values)是一种常用的文本文件格式,用于存储表格数据(例如电子表格或数据库中的数据)。CSV 文件以纯文本形式存储,其中每行数据代表表格中的一行,且每个字段(或单元格)通常由逗号分隔。CSV 文件的基本结构和特点包括:

  1. 基本结构

    • 数据行:每一行代表一个数据记录。
    • 字段分隔符:通常是逗号,但也可以是其他字符,如分号或制表符。
    • 字段:每个记录中的单个数据单元。
  2. 可选元素

    • 标题行:文件的第一行可作为标题行,包含每列数据的名称。
    • 文本限定符:如果字段值包含分隔符或换行符,通常用双引号作为文本限定符。
  3. 示例

    • 不带标题的 CSV 文件:
      John Doe,30,New York
      Jane Smith,25,Los Angeles
      
    • 带标题的 CSV 文件:
      Name,Age,City
      John Doe,30,New York
      Jane Smith,25,Los Angeles
      
  4. 注意事项

    • 如果字段本身包含逗号或换行符,这些字段通常需要用双引号包围。
    • 如果字段本身包含双引号字符,通常需要使用转义方法,如在双引号前加另一个双引号。

4.2 应用场景

CSV 文件因其简单性和跨平台兼容性,在数据导入/导出、数据报表、电子表格处理等多种应用场景中广泛使用。由于大多数电子表格软件和许多编程语言都支持 CSV 格式,它成为了数据交换的一种简单而通用的方法。

5 总结

上面提到的四种文件格式——JSON、XML、INI 和 CSV——都属于文本文件。这意味着这些文件主要由可读的字符组成,可以使用文本编辑器打开和编辑。以下是这些文本文件通常使用的编码类型:

  1. JSON

    • 标准的 JSON 使用 UTF-8 编码。这是因为 JSON 主要用于网络传输,而 UTF-8 编码在 Web 上非常普遍且兼容性良好。
    • UTF-8 支持国际化字符,是目前最广泛使用的 Unicode 编码形式。
  2. XML

    • XML 支持多种字符编码,但 UTF-8 和 UTF-16 是最常用的。
    • XML 文件的编码可以在文件的声明部分指定,例如 <?xml version="1.0" encoding="UTF-8"?>
  3. INI

    • INI 文件通常使用系统默认的字符编码,这在不同的操作系统中可能不同。在 Windows 中,这通常是 ANSI 编码,而在 Linux 和 macOS 中通常是 UTF-8。
    • 由于 INI 文件通常用于本地应用配置,所以它们的编码可能会根据应用程序和操作系统的需要而变化。
  4. CSV

    • CSV 文件通常使用 UTF-8 编码,特别是在需要国际化支持时。
    • 但在某些情况下,尤其是在与特定软件(如某些版本的 Microsoft Excel)配合使用时,可能会使用其他编码,如 ANSI 或特定于语言的编码。

在处理这些文本文件时,正确的字符编码非常重要,尤其是在文件包含非英语字符时。不匹配的字符编码可能导致字符显示错误或乱码。通常,UTF-8 编码由于其广泛的兼容性和对国际字符的支持而成为首选。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1325339.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构和算法】 K 和数对的最大数目

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 方法一&#xff1a;双指针排序 三、代码 3.1 方法一&#xff1a;双指针排序 3.2 方法二&#xff1…

制造行业定制软件解决方案——工业信息采集平台

摘要&#xff1a;针对目前企业在线检测数据信号种类繁多&#xff0c;缺乏统一监控人员和及时处置措施等问题。蓝鹏测控开发针对企业工业生产的在线数据的集中采集分析平台&#xff0c;通过该工业信息采集平台可将企业日常各种仪表设备能够得到数据进行集中分析处理存储&#xf…

mysql部署 --(docker)

先查找MySQL 镜像 Docker search mysql &#xff1b; 拉取mysql镜像&#xff0c;默认拉取最新的&#xff1b; 创建mysql容器&#xff0c;-p 代表端口映射&#xff0c;格式为 宿主机端口&#xff1a;容器运行端口 -e 代表添加环境变量&#xff0c;MYSQL_ROOT_PASSWORD是root用户…

【K8s】#1使用kuboard-spray安装K8s集群

文章目录 搭建k8s集群1.推荐配置1.1.服务器配置1.2.软件版本 2.使用Kuboard-Spray安装k8s集群2.1.配置要求2.2.操作系统兼容性2.3.安装 Kuboard-Spray2.4.加载离线资源包2.5.规划并安装集群2.6.安装成功2.7.访问集群 3.涉及的命令3.1.linux 4.问题汇总Q1&#xff1a;启动离线集…

一个正则快速找到在ES中使用profile的时产生慢查询的分片

在es中使用profile分析慢查询的时候&#xff0c;往往因为分片过多&#xff0c;或者因为查询条件太复杂&#xff0c;分析的结果几十万行。在kibana上点半天&#xff0c;也找不到一个耗时长的分片。 kibana上可以通过正则来匹配。其实我们只需要匹配到耗时大于10秒的请求。 检索语…

HackTheBox - Medium - Windows - Aero

Aero 这个机器利用了今年比较新的cve&#xff0c;关于windows11的漏洞&#xff0c;类似于lnk、scf&#xff0c;但这个危害更高&#xff0c;通过易受攻击的windows11 利用theme、msstyles来实现RCE. Aero 是一台中等难度的 Windows 机器&#xff0c;最近有两个 CVE&#xff1a;…

argmin与argmax

argmin 是一个数学术语&#xff0c;用于表示一个函数在其定义域中取得最小值的参数值&#xff08;自变量的值&#xff09;&#xff0c;而不是最小值本身。 具体来说&#xff0c;argmin 表示函数的自变量&#xff08;通常是一个实数或向量&#xff09;&#xff0c;当输入到该函数…

文件传输软件SecureFX mac支持多种协议

SecureFX mac是一款文件传输客户端&#xff0c;可在 Mac 操作系统上使用。它由 VanDyke Software 公司开发&#xff0c;旨在为用户提供安全、可靠、高效的文件传输服务。 SecureFX 支持多种协议&#xff0c;包括 SFTP、SCP、FTP、FTP over SSL/TLS 和 HTTP/S。它使用强大的加密…

java并发-ConcurrentHashMap 在Java7 和 8 的区别

文章目录 1.Java 7 版本的 ConcurrentHashMap2.Java 8 版本的 ConcurrentHashMap3.分析 Java 8 版本的 ConcurrentHashMap 的重要源码3.1.Node 节点3.2.put 方法源码分析3.3.get 方法源码分析 4.对比 Java7 和 Java8 的异同和优缺点4.1.并发度4.2.保证并发安全的原理4.3.遇到 H…

Spring Boot构建项目常用注解

忙着去耍帅&#xff0c;后期补充完整.....................................

文件上传 [SWPUCTF 2021 新生赛]easyupload1.0

打开题目 上传文件格式为jpg类型的一句话木马上去 木马内容为 bp抓包把文件后缀改为php 可以看到上传成功且给了我们上传路径&#xff0c;访问一下 访问成功 我们用蚁剑连接一下&#xff0c;但是找到的是假的flag 那我们用hackbar&#xff08;也可以用bp&#xff09; 执行命…

法线贴图实现衣服上皱褶特效

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 法线贴图在3D建模中扮演着重要的角色&#xff0c;它通过模拟表面的微…

S7-200PLC与MCGS昆仑通泰触摸屏进行串口通信的具体方法示例

S7-200PLC与MCGS昆仑通泰触摸屏进行串口通信的具体方法示例 PLC:CPU 224XP CN 触摸屏:TPC1570GI 通信电缆的连接: 触摸屏7+对应PLC 3+,触摸屏8-对应PLC 8- 触摸屏和PLC的硬件连接如下图所示: PLC一侧的组态设置: 第一步:(在编程软件系统块中打开通讯端口设置) 第二步:…

《数据分析-JiMuReport》积木报表详细入门教程

积木报表详细入门教程 一、JimuReport部署入门介绍 积木报表可以通过源码部署、SpringBoot集成、Docker部署以及各种成熟框架部署&#xff0c;具体可查看积木官方文档 当前采用源码部署&#xff0c;首先下载Jimureport-example-1.5.6 1 jimureport-example目录查看 使用ID…

H5聊天系统聊天网站源码 群聊源码 无限建群创群

H5聊天系统聊天网站源码 群聊源码 无限建群创群 1.支持自助建群 管理群 修改群资料 2.支持自动登录 登陆成功可自助修改资料 3.后台可查看群组聊天消息记录 4.支持表情 动态表情 图片发布 5.支持消息语音提醒 测试环境&#xff1a;NginxMySQL5.6PHP5.6 1.将压缩包解压到…

阿赵UE学习笔记——3、常用界面窗口

阿赵UE学习笔记目录 大家好&#xff0c;我是阿赵。继续学习虚幻引擎&#xff0c;这次介绍的是编辑器的常用界面窗口。 一、视口 这个视口的概念&#xff0c;可以体现出UE对于多屏幕同时显示是多么的友好。我们开发游戏的时候&#xff0c;一般都会同一台电脑用2个或者以上显示器…

【【迭代七次的CORDIC算法-Verilog实现】】

迭代七次的CORDIC算法-Verilog实现求解正弦余弦函数 COEDIC.v module CORDIC #(parameter DATA_WIDTH 4d8 , // we set data widthparameter PIPELINE 4d8)(input clk ,input …

命令执行 [SWPUCTF 2021 新生赛]babyrce

打开题目 我们看到题目说cookie值admin等于1时&#xff0c;才能包含文件 bp修改一下得到 访问rasalghul.php&#xff0c;得到 题目说如果我们get传入一个url且不为空值&#xff0c;就将我们get姿势传入的url的值赋值给ip 然后用正则过滤了 / /&#xff0c;如果ip的值没有 / …

Android 13 - Media框架(24)- OMXNodeInstance(一)

为了了解 ACodec 是如何与 OpenMAX 组件进行 buffer 流转的&#xff0c;我们有必要先来学习 OMXNodeInstance&#xff0c;在前面的章节中&#xff0c;我们已经了解了 media.codec 进程包含的内容&#xff0c;以及 OpenMAX 框架中的一些内容。这一节我们将来学习 OMXNode 与 med…