首頁 > web前端 > js教程 > 輕鬆修復和驗證 JSON:深入指南

輕鬆修復和驗證 JSON:深入指南

Susan Sarandon
發布: 2024-12-29 09:55:10
原創
869 人瀏覽過

Fixing and Validating JSON with Ease: An In-Depth Guide

了解 JSON 結構

JSON(JavaScript 物件表示法)是一種輕量級資料交換格式,易於人類閱讀和編寫,也易於機器解析和產生。它由兩個基本結構組成:

  1. 物件:用大括號 {} 括起來的鍵/值對的集合。

    • 範例:{ "name": "John", "age": 30 }
  2. 陣列:用方括號 [] 括起來的有序值集合。

    • 例:[「蘋果」、「香蕉」、「櫻桃」]

常見 JSON 錯誤

在開始修復和驗證 JSON 之前,讓我們先了解 JSON 可能遇到的常見問題:

  1. 缺少或多餘的逗號:陣列或物件末端的尾隨逗號或缺少逗號可能會導致無效的 JSON。

    • 無效的 JSON: { "name": "John", "age": 30, }
    • 正確的 JSON: { "name": "John", "age": 30 }
  2. 不含引號的鍵:JSON 鍵必須永遠用雙引號 (") 括起來。

    • 無效的 JSON: { name: "John" }
    • 正確的 JSON: { "name": "John" }
  3. 不正確的資料類型:確保正確使用資料型態。例如,字串應該加引號,數字應該不加引號。

    • 無效的 JSON: { "age": "30" } (年齡被引用,但它應該是一個數字)
    • 正確的 JSON: { "age": 30 }
  4. 括號不符:請務必確保大括號 {} 和方括號 [] 正確匹配。

    • 無效的 JSON: { "name": "John", "age": 30
    • 正確的 JSON: { "name": "John", "age": 30 }
  5. 無效字元:JSON 字串只能包含某些字元。例如,反斜線 () 必須在字串中轉義。

    • 無效的 JSON: { "quote": "這是一個反斜線 \" }
    • 正確的 JSON: { "quote": "這是一個反斜線 \\" }

如何修復 JSON

要修復無效的 JSON,您可以按照以下步驟操作:

1. 手動修復 JSON

如果您有一小段無效的 JSON,最簡單的方法可能是手動修復它。這是一個簡單的方法:

  • 第 1 步:辨識並修正語法錯誤(例如缺少逗號、括號或引號)。
  • 第 2 步:確保所有鍵都用雙引號括起來,並且值的類型正確(字串、數字、布林值、陣列、物件、null)。
  • 第 3 步:使用 JSON 驗證器(更多內容請見下文)來確認您的 JSON 結構正確。

2. 使用線上工具修復 JSON

有幾個線上工具可以幫助您自動修復或格式化 JSON:

  • JSONLint (https://onlinejsonformatter.com) – 它檢查 JSON 的語法並突出顯示錯誤。它還可以將雜亂的 JSON 格式化為可讀的結構。
  • JSON 格式化程式和驗證器 (https://jsonformatter.curiousconcept.com/) – 此工具可協助格式化 JSON 並提供錯誤描述。
  • JSON Prettifier – 它可以幫助清理並使 JSON 更具可讀性。

這些工具通常會突出顯示語法問題並提供錯誤訊息,可以引導您準確找到問題所在,從而更容易修復。

3. 使用支援 JSON 的程式碼編輯器

許多程式碼編輯器(例如 Visual Studio Code、Sublime Text 或 Atom)提供特定於 JSON 的功能,例如:

  • 語法突出顯示:顏色和格式可幫助您直觀地看到不匹配的括號或引號。
  • Linting:ESLint 或 TSLint 等工具可以幫助標記 JSON 檔案中的問題。
  • 自動格式化:VSCode 等編輯器具有內建格式化程序,可自動修復 JSON 縮排並刪除無關的空格。

VS Code 中的範例:

  1. 開啟您的 JSON 檔案。
  2. 點選 Shift Alt F 自動格式化並修正常見的間距問題。
  3. 使用像 Prettier 這樣的擴充功能來進一步格式化 JSON。

4. 使用程式語言修復 JSON

如果您有大型資料集,使用程式語言(例如 Python、JavaScript 或 Go)可能會更有效。例如,在 Python 中,您可以使用 json 模組來驗證和修復 JSON:

import json

# Read the JSON string from a file or input
input_json = '{"name": "John", "age": 30,}'

# Try to load and fix the JSON
try:
    parsed_json = json.loads(input_json)  # This will raise an error if the JSON is invalid
except json.JSONDecodeError as e:
    print(f"Invalid JSON: {e}")

# Correcting it manually or programmatically and revalidating
登入後複製
登入後複製

在 JavaScript 中,您可以使用 JSON.parse() 檢查 JSON 是否有效,然後修改它:

const inputJson = '{"name": "John", "age": 30,}';

try {
    const parsedJson = JSON.parse(inputJson); // Throws error if invalid
    console.log('Valid JSON:', parsedJson);
} catch (error) {
    console.log('Invalid JSON:', error.message);
}
登入後複製
登入後複製

驗證 JSON

JSON 驗證涉及檢查 JSON 字串的結構和格式是否正確。這可以透過多種方式完成:

1. 使用 JSON 驗證器

網路上有幾個免費的 JSON 驗證工具:

  • JSONLint:將 JSON 貼到框中,然後按一下「驗證 JSON」。它將顯示您的 JSON 是否有效或突出顯示無效的地方。
  • JSON Formatter & Validator:該工具不僅可以驗證,還可以以可讀的方式格式化 JSON。

2. 使用程式語言進行驗證

大多數程式語言都有用於驗證 JSON 的內建函數或函式庫:

  • Python
import json

# Read the JSON string from a file or input
input_json = '{"name": "John", "age": 30,}'

# Try to load and fix the JSON
try:
    parsed_json = json.loads(input_json)  # This will raise an error if the JSON is invalid
except json.JSONDecodeError as e:
    print(f"Invalid JSON: {e}")

# Correcting it manually or programmatically and revalidating
登入後複製
登入後複製
  • JavaScript
const inputJson = '{"name": "John", "age": 30,}';

try {
    const parsedJson = JSON.parse(inputJson); // Throws error if invalid
    console.log('Valid JSON:', parsedJson);
} catch (error) {
    console.log('Invalid JSON:', error.message);
}
登入後複製
登入後複製
  import json

  try:
      json_object = json.loads('{"name": "John", "age": 30}')
      print("Valid JSON")
  except ValueError as e:
      print("Invalid JSON", e)
登入後複製

3. 使用 JSON 模式驗證

對於更複雜的 JSON 結構,您可以根據預先定義的 JSON 架構 驗證 JSON。 JSON 架構是定義 JSON 文件的結構、所需屬性和資料類型的藍圖。

  • JSON 架構 就像一個合約,定義了有效的 JSON 應該是什麼樣子。
  • JavaScript 或 Python jsonschema 庫中的 AJV(另一個 JSON 架構驗證器)等工具可以幫助您根據架構驗證 JSON 資料。

範例 JSON 架構:

  try {
      JSON.parse('{"name": "John", "age": 30}');
      console.log("Valid JSON");
  } catch (e) {
      console.log("Invalid JSON");
  }
登入後複製

使用 Schema 在 Python 中驗證 JSON:

  import (
      "encoding/json"
      "fmt"
  )

  func main() {
      var jsonData = `{"name": "John", "age": 30}`
      var obj map[string]interface{}

      err := json.Unmarshal([]byte(jsonData), &obj)
      if err != nil {
          fmt.Println("Invalid JSON:", err)
      } else {
          fmt.Println("Valid JSON")
      }
  }
登入後複製

自動 JSON 驗證

對於持續整合、自動化測試或生產環境,您可能想要使用建置工具或 CI 管道(如 GitHub Actions、Jenkins 等)自動進行 JSON 驗證。

  • 您可以使用 JSONLint、prettier 等工具,或使用程式語言編寫自訂驗證腳本並將其整合到您的工作流程中。

結論

修復和驗證 JSON 對於開發人員來說是一項關鍵技能,尤其是在使用 API、設定檔或系統之間的資料交換時。無論您使用小型 JSON 物件還是大型資料集,了解常見陷阱、使用線上工具、程式語言或 JSON 架構驗證都可以顯著提高 JSON 資料的可靠性和正確性。

透過使用正確的工具,例如線上驗證器、具有內建功能的程式碼編輯器,甚至使用腳本自動化流程,您可以確保您的JSON 格式化程式 既有效又易於使用.

以上是輕鬆修復和驗證 JSON:深入指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板