數據交換格式詳解

一、JSON(JavaScript Object Notation)

1、JSON起源

JSON(JavaScript Object Notation,JavaScript對象表示法)是一種輕量級的數據交換格式,由Douglas Crockford在2001年提出,它的設計目標是把數據格式簡單化,具有良好的可讀性,同時也方便程序讀取和生成數據。與XML格式相比,JSON格式更為簡單明了,尤其適用於Web應用程序的數據傳輸。

2、JSON數據結構

JSON數據結構由鍵值對組成,鍵值對之間用逗號「,」分隔,鍵值對之間用「:」分隔。JSON支持的數據類型有字元串、數字、布爾值、數組、對象和null。

{
    "name": "張三",
    "age": 22,
    "isMarried": false,
    "city": ["北京", "上海"],
    "education": {
        "school": "清華大學",
        "major": "計算機科學與技術"
    },
    "isStudent": null
}

3、使用JSON

在JavaScript中,可以用eval()方法將JSON字元串轉換為JavaScript對象,也可以使用JSON.parse()方法將JSON字元串轉換為JavaScript對象。而在其他編程語言中,也可以使用相應的解析器將JSON字元串解析為相應的數據類型。

//將JSON字元串轉換為JavaScript對象
var jsonData = '{"name": "張三", "age": 22}';
var objData = JSON.parse(jsonData);

二、XML(eXtensible Markup Language)

1、XML起源

XML(eXtensible Markup Language,可擴展標記語言)是一種用於存儲和交換數據的文本格式,由W3C在1998年發布。與HTML相似,XML也使用標籤來描述數據,但XML的標籤不是預定義的,而是由用戶自定義的。XML在傳輸和存儲數據時具有良好的跨平台性和互操作性。

2、XML數據結構

XML由標記和文本組成,XML的標記分為開始標記、結束標記和單一標記。開始標記和結束標記成對出現,標記之間包括文本、其他標記或者空格等。所有的標記必須是嵌套的,而且不能有交叉,每個標記都必須被正確地打開和關閉。

<student>
    <name>張三</name>
    <age>22</age>
    <isMarried>false</isMarried>
    <city>北京</city>
    <city>上海</city>
    <education>
        <school>清華大學</school>
        <major>計算機科學與技術</major>
    </education>
    <isStudent>null</isStudent>
</student>

3、使用XML

在Web開發中,可以使用XMLHttpRequest對象發送XML格式的數據,也可以使用DOM解析器將XML字元串解析為DOM樹,然後對DOM樹進行操作。在其他編程語言中,也可以使用相應的解析器將XML字元串解析為相應的數據類型。

//使用XMLHttpRequest對象發送XML格式的數據
var xhr = new XMLHttpRequest();
xhr.open("POST", "url", true);
xhr.setRequestHeader("Content-type", "application/xml");
xhr.send("<student><name>張三</name><age>22</age></student>");

//使用DOM解析器解析XML字元串
var parser = new DOMParser();
var xmlDoc = parser.parseFromString("<student><name>張三</name><age>22</age></student>", "text/xml");

三、YAML(YAML Ain’t Markup Language)

1、YAML起源

YAML(YAML Ain’t Markup Language,YAML不是標記語言)是一種人類友好的數據序列化格式,由Clark Evans在2001年發布。YAML的設計目標是彌補XML的複雜性和JSON的不足,它的語法簡單,可讀性強,支持注釋,同時還支持對象、數組、布爾值、null和日期等數據類型。

2、YAML數據結構

YAML使用縮進來表示層級關係,使用「:」來表示鍵值對的關係。YAML支持的數據類型有字元串、數字、布爾值、日期、數組、對象和null。YAML的注釋使用「#」開頭,直到行末為止,可以注釋任何內容。

#學生信息
name: 張三
age: 22
isMarried: false
city:
  - 北京
  - 上海
education:
  school: 清華大學
  major: 計算機科學與技術
isStudent: null

3、使用YAML

在其他編程語言中,可以使用相應的解析器將YAML字元串解析為相應的數據類型,也可以使用YAML庫將YAML字元串轉換為相應的數據類型。

//將YAML字元串轉換為JavaScript對象
var yamlData = "name: 張三\nage: 22";
var objData = jsyaml.safeLoad(yamlData);

四、CSV(Comma-Separated Values)

1、CSV起源

CSV(Comma-Separated Values,逗號分隔值)是一種常用的簡單文件格式,它用逗號分隔數據,每行數據表示一個記錄,多行數據組成一個表格。CSV格式簡單、易於使用和存儲,常用於電子表格和資料庫的導入導出。

2、CSV數據結構

CSV格式中,每個記錄佔據一行,每個欄位用逗號隔開。如果欄位中包含逗號,那麼需要使用雙引號括起來,雙引號中的逗號不作為分隔符。如果欄位中包含雙引號,那麼需要使用兩個雙引號代替。

姓名,年齡,性別,城市
"張三",22,"男","北京"
"李四",24,"女","上海"
"王五",20,"男","廣州"

3、使用CSV

在其他編程語言中,可以使用相應的解析器將CSV字元串解析為相應的數據類型,也可以使用CSV庫將CSV字元串轉換為相應的數據類型。

//將CSV字元串轉換為JavaScript對象
var csvData = '姓名,年齡,性別,城市\n"張三",22,"男","北京"';
var objData = Papa.parse(csvData, {header: true});

可以看出,每個數據交換格式都有其獨特的特點和優缺點,應根據實際情況選擇合適的數據交換格式。

原創文章,作者:ELPO,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/147412.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ELPO的頭像ELPO
上一篇 2024-11-01 14:09
下一篇 2024-11-01 14:09

相關推薦

  • 如何在Java中拼接OBJ格式的文件並生成完整的圖像

    OBJ格式是一種用於表示3D對象的標準格式,通常由一組頂點、面和紋理映射坐標組成。在本文中,我們將討論如何將多個OBJ文件拼接在一起,生成一個完整的3D模型。 一、讀取OBJ文件 …

    編程 2025-04-29
  • 如何將視頻導出成更小的格式給IT前端文件

    本文將從以下幾個方面介紹如何將視頻導出成更小的格式,以便於在IT前端文件中使用。 一、選擇更小的視頻格式 在選擇視頻格式時,應該儘可能選擇更小的格式,如MP4、WebM、FLV等。…

    編程 2025-04-28
  • JavaScript中使用new Date轉換為YYYYMMDD格式

    在JavaScript中,我們通常會使用Date對象來表示日期和時間。當我們需要在網站上顯示日期時,很多情況下需要將Date對象轉換成YYYYMMDD格式的字元串。下面我們來詳細了…

    編程 2025-04-27
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁碟中。在執行sync之前,所有的文件系統更新將不會立即寫入磁碟,而是先緩存在內存…

    編程 2025-04-25
  • 神經網路代碼詳解

    神經網路作為一種人工智慧技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網路的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網路模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25
  • C語言貪吃蛇詳解

    一、數據結構和演算法 C語言貪吃蛇主要運用了以下數據結構和演算法: 1. 鏈表 typedef struct body { int x; int y; struct body *nex…

    編程 2025-04-25
  • Python安裝OS庫詳解

    一、OS簡介 OS庫是Python標準庫的一部分,它提供了跨平台的操作系統功能,使得Python可以進行文件操作、進程管理、環境變數讀取等系統級操作。 OS庫中包含了大量的文件和目…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分散式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25
  • Java BigDecimal 精度詳解

    一、基礎概念 Java BigDecimal 是一個用於高精度計算的類。普通的 double 或 float 類型只能精確表示有限的數字,而對於需要高精度計算的場景,BigDeci…

    編程 2025-04-25

發表回復

登錄後才能評論