JSON正則表達式

一、JSON概述

JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,由JavaScript語言創建,但也包含其他編程語言的語法元素。JSON結構由「名稱:值」對組成,其中名稱是字元串,值可以是字元串、數字、布爾值、null、對象或數組。

例如:

{
  "name": "小明",
  "age": 18,
  "hobby": ["football", "basketball"],
  "contact": {
    "phone": "123456789",
    "email": "xiaoming@mail.com"
  }
}

JSON在Web開發中廣泛應用,伺服器和客戶端之間的數據傳輸、AJAX等均可使用JSON格式。

二、JSON正則表達式

在處理JSON數據時,我們需要對數據進行各種各樣的操作,其中包括對字元串進行解析、匹配、提取等等。這時,我們就需要使用正則表達式。

JSON正則表達式主要包括兩方面內容:1、匹配JSON中的特定字元;2、提取JSON中的特定內容。

三、匹配JSON中的特定字元

匹配JSON中的特定字元可以幫助我們定位到需要操作的數據,主要包括以下方面:

1、匹配JSON中的鍵名

匹配JSON中的鍵名可以用於查找特定的鍵值對,例如查找所有名字為age的鍵值對。

正則表達式示例:

"age":\s*\d+

該正則表達式匹配所有名字為age的鍵值對,其中\s表示匹配空格,\d+表示匹配1個或多個數字。

2、匹配JSON中的鍵值

匹配JSON中的鍵值可以用於查找特定的鍵對應的值,例如查找所有值為18的鍵值對。

正則表達式示例:

\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b

該正則表達式匹配所有IP地址。

3、匹配JSON中的數組元素

匹配JSON中的數組元素可以用於查找特定的數組元素,例如查找所有喜歡籃球的人。

正則表達式示例:

"contact":\s*{\s*"phone":\s*"\d{9}",\s*"email":\s*"[a-zA-Z0-9]+@[a-zA-Z]+\.[a-zA-Z]{2,4}"\s*}\s*

該正則表達式匹配所有聯繫方式為{“phone”: “…”, “email”: “…”}的數據。

四、提取JSON中的特定內容

除了匹配JSON中的特定字元,我們還需要從JSON中提取特定的內容,主要包括以下方面:

1、提取JSON中的鍵值對

提取JSON中的鍵值對可以用於查找特定的鍵值對,例如提取名字為age的鍵值對。

正則表達式示例:

(?:^|,)\s*\K"[^"]*"\s*:\s*(?:"(?:\\.|[^\\"])*"|true|false|null|\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)\s*

該正則表達式匹配所有符合JSON結構的鍵值對。

2、提取JSON中的數組元素

提取JSON中的數組元素可以用於查找特定的數組元素,例如提取所有喜歡籃球的人。

正則表達式示例:

(?<="hobby":\s*\[)(?:"[^"]*",?\s*)*?\K"basketball"(?=\s*\])

該正則表達式提取所有喜歡籃球的人所在的JSON數據。

3、提取JSON中的子對象

提取JSON中的子對象可以用於查找特定的子對象,例如提取所有聯繫方式為{“phone”: “…”, “email”: “…”}的人所在的JSON數據。

正則表達式示例:

(?<=\{)[^{}]*(?=\{(?:[^{}]*\{[^{}]*\}[^{}]*)*\s*"phone":\s*"\d{9}"\s*,\s*"email":\s*"[a-zA-Z0-9]+@[a-zA-Z]+\.[a-zA-Z]{2,4}"\s*\}(?:[^{}]*\{[^{}]*\}[^{}]*)*\s*\})

該正則表達式提取所有符合條件的JSON數據。

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-26 13:14
下一篇 2024-12-26 13:14

相關推薦

  • Python正則表達式search()和match()有什麼區別?

    search()和match()都是Python中的正則表達式函數,它們的作用都是在一個字元串中搜索匹配正則表達式的位置,但它們有著不同的使用場景和返回結果。 一、search()…

    編程 2025-04-29
  • JSON的MD5

    在Web開發過程中,JSON(JavaScript Object Notation)是最常用的數據格式之一。MD5(Message-Digest Algorithm 5)是一種常用…

    編程 2025-04-29
  • 使用Java將JSON寫入HDFS

    本篇文章將從以下幾個方面詳細闡述Java將JSON寫入HDFS的方法: 一、HDFS簡介 首先,先來了解一下Hadoop分散式文件系統(HDFS)。HDFS是一個可擴展性高的分散式…

    編程 2025-04-29
  • 如何使用Newtonsoft datatable轉Json

    Newtonsoft DataTable 是一個基於.NET的JSON框架,也是一個用於序列化和反序列化JSON的強大工具。 在本文中,我們將學習如何使用Newtonsoft Da…

    編程 2025-04-28
  • JPRC – 輕鬆創建可讀性強的 JSON API

    本文將介紹一個全新的 JSON API 框架 JPRC,通過該框架,您可以輕鬆創建可讀性強的 JSON API,提高您的項目開發效率和代碼可維護性。接下來將從以下幾個方面對 JPR…

    編程 2025-04-27
  • Python存為JSON的方法及實例

    本文將從以下多個方面對Python存為JSON做詳細的闡述。 一、JSON簡介 JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,易於人閱…

    編程 2025-04-27
  • 使用Python獲取JSON並解析

    本文將介紹如何使用Python獲取JSON數據並解析相關內容。通過使用Python的第三方庫,我們可以輕鬆地處理JSON數據,包括讀取、提取和操作JSON數據。 一、獲取JSON數…

    編程 2025-04-27
  • 使用Spread 8展示JSON數據

    使用Spread 8可以方便地展示JSON數據,本文將詳細介紹如何利用Spread 8展示JSON數據。 一、Spread 8簡介 Spread 8是一款強大的電子表格軟體,可以方…

    編程 2025-04-27
  • 如何在json轉實體類時忽略大小寫

    本文將從以下幾個方面介紹如何在json轉實體類時忽略大小寫。 一、使用Gson庫實現json轉實體類忽略大小寫 Gson是Google提供的Java JSON操作庫,它提供了簡單易…

    編程 2025-04-27
  • MySQL正則表達式替換

    MySQL正則表達式替換是指通過正則表達式對MySQL中的字元串進行替換。在文本處理方面,正則表達式是一種強大的工具,可以方便快捷地進行字元串處理和匹配。在MySQL中,可以使用正…

    編程 2025-04-27

發表回復

登錄後才能評論