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

XML JSON

XML 与 JSON 结构


XML(eXtensible Markup Language)

1. 定义

  • XML 是一种标记语言,用于描述数据的结构和内容。
  • 主要用于数据存储与交换。

2. 特点

  • 可扩展性:用户可以自定义标签。
  • 层次化结构:数据以树形结构组织,父子节点关系明确。
  • 可读性强:通过标签可以清楚了解数据的意义。
  • 跨平台性:与不同系统和语言兼容。

3. 基本结构

  • XML 声明:定义版本和编码方式。

    <?xml version="1.0" encoding="UTF-8"?>
    
  • 根元素:每个 XML 文件有且仅有一个根元素。

    <root>
        <!-- 子元素 -->
    </root>
    
  • 子元素:嵌套结构表示父子关系。

    <root>
        <child>内容</child>
    </root>
    
  • 属性:为标签添加额外信息。

    <person name="Alice" age="25"></person>
    
  • 注释

    <!-- 这是一个注释 -->
    

4. 优缺点

  • 优点
    • 自描述性强,适合复杂数据。
    • 支持多种数据类型。
    • 有丰富的解析库支持。
  • 缺点
    • 冗余信息多,文件较大。
    • 解析速度相对较慢。

Example

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book category="COOKING">
  <title lang="en">Everyday Italian</title> 
  <author>Giada De Laurentiis</author> 
  <year>2005</year> 
  <price>30.00</price> 
</book>
<book category="CHILDREN">
  <title lang="en">Harry Potter</title> 
  <author>J K. Rowling</author> 
  <year>2005</year> 
  <price>29.99</price> 
</book>
<book category="WEB">
  <title lang="en">Learning XML</title> 
  <author>Erik T. Ray</author> 
  <year>2003</year> 
  <price>39.95</price> 
</book>
</bookstore>

需要根据xml文件画出结构图如下
在这里插入图片描述


JSON(JavaScript Object Notation)

1. 定义

  • JSON 是一种轻量级的数据交换格式。
  • 使用键值对表示数据,适合前后端数据交互。

2. 特点

  • 结构简单:以键值对和数组构成。
  • 体积小:比 XML 更紧凑。
  • 可读性强:易于理解和操作。
  • 语言无关性:与多种语言兼容。

3. 基本结构

  • 对象(Object):用 {} 表示。

    {
        "name": "Alice",
        "age": 25
    }
    
  • 数组(Array):用 [] 表示。

    [
        "apple",
        "banana",
        "cherry"
    ]
    
  • 键值对:使用 key:value 格式,键为字符串。

    {
        "key": "value"
    }
    
  • 嵌套结构:对象和数组可以互相嵌套。

    {
        "person": {
            "name": "Alice",
            "hobbies": ["reading", "cycling"]
        }
    }
    
  • 注释:JSON 不支持注释。

4. 优缺点

  • 优点
    • 数据格式紧凑,解析速度快。
    • 更适合网络传输。
    • 与 JavaScript 的天然兼容性。
  • 缺点
    • 不支持注释,影响可维护性。
    • 表达复杂数据结构时不如 XML 灵活。

Example

{
  "$schema": "http://json-schema.org/schema#",
  "title": "Product",
  "type": "object",
  "required": ["id", "name", "price"],
  "properties": {
    "id": {
      "type": "number",
      "description": "Product identifier"
    },
    "name": {
      "type": "string",
      "description": "Name of the product"
    },
    "price": {
      "type": "number",
      "minimum": 0
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "stock": {
      "type": "object",
      "properties": {
        "warehouse": {
          "type": "number"
        },
        "retail": {
          "type": "number"
        }
      }
    }
  }
}

XML vs JSON 对比

特性XMLJSON
可读性标签结构易读,但冗余较多简洁,格式紧凑
体积文件较大,数据冗余文件较小,数据简洁
数据类型支持多种类型支持基本类型与数组
层次关系支持复杂的父子层次关系支持嵌套,但不如 XML 清晰
解析难度解析相对复杂解析简单,解析库丰富
用途数据存储、配置文件数据交换、网络传输

总结

  1. XML 适合描述复杂的、具有层次结构的数据,常用于配置文件和文档存储。
  2. JSON 更适合高效的网络传输,是前后端通信的主流格式。
  3. 选择时应根据场景需求权衡:
    • 数据复杂性高、需兼容多系统:XML。
    • 网络传输需求高、轻量级:JSON。

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

相关文章:

  • Python 中的 Lxml 库与 XPath 用法
  • 鸿蒙心路旅程:从实践到创新——开发者的深度技术分享
  • 什么是MyBatis?
  • 数据结构 (6)栈的应用举例
  • godot游戏引擎_瓦片集和瓦片地图介绍
  • Python数据分析实例五、US 大选捐款数据分析
  • 《操作系统 - 清华大学》5 -5:缺页异常
  • MySQL底层概述—4.InnoDB数据文件
  • 欢迪迈手机商城:SpringBoot框架的持续集成
  • Could not connect to Redis at 127.0.0.1:6380: Connection refused
  • 【动手学电机驱动】STM32-FOC(8)MCSDK Profiler 电机参数辨识
  • 神经网络中的神经元是什么?
  • QT6学习第四天 感受QT的文件编译
  • uniapp在App端定义全局弹窗,当打开关闭弹窗会触发onShow、onHide生命周期怎么解决?
  • P5732 【深基5.习7】杨辉三角
  • QT QGridLayout控件 全面详解
  • 【设计模式】【结构型模式(Structural Patterns)】之代理模式(Proxy Pattern)
  • Python 网络爬虫入门教程:理论与实践
  • Spring Boot开发实战:从入门到构建高效应用
  • Spark垃圾回收
  • 活着就好20241128
  • 【设计模式】【结构型模式(Structural Patterns)】之外观模式(Facade Pattern)
  • 医学机器学习:数据预处理、超参数调优与模型比较的实用分析
  • T3 TensorFlow入门实战——天气识别
  • laravel-operate
  • 数学期望在算法中的应用