ホームページ > ウェブフロントエンド > jsチュートリアル > JSON の修正と検証を簡単に行う: 詳細ガイド

JSON の修正と検証を簡単に行う: 詳細ガイド

Susan Sarandon
リリース: 2024-12-29 09:55:10
オリジナル
870 人が閲覧しました

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

JSON 構造を理解する

JSON (JavaScript Object Notation) は、人間が読み書きしやすく、マシンが解析して生成しやすい軽量のデータ交換形式です。これは 2 つの基本構造で構成されています:

  1. オブジェクト: 中括弧 {} で囲まれたキーと値のペアのコレクション。

    • 例: { "名前": "ジョン", "年齢": 30 }
  2. 配列: 角括弧 [] で囲まれた順序付けされた値のコレクション。

    • 例: ["リンゴ"、"バナナ"、"チェリー"]

一般的な JSON エラー

JSON の修正と検証に入る前に、まず JSON で直面する可能性のある一般的な問題を理解しましょう。

  1. カンマの欠落または余分なコンマ: 配列またはオブジェクトの末尾に末尾のカンマがあるか、カンマが欠落していると、無効な JSON が発生する可能性があります。

    • 無効な JSON: { "名前": "ジョン", "年齢": 30, }
    • 正しい JSON: { "name": "John", "age": 30 }
  2. 引用符で囲まれていないキー: JSON キーは常に二重引用符 (") で囲む必要があります。

    • 無効な JSON: { 名前: "ジョン" }
    • 正しい JSON: { "name": "John" }
  3. 間違ったデータ型: データ型が正しく使用されていることを確認してください。たとえば、文字列は引用符で囲み、数値は引用符で囲まないでください。

    • 無効な JSON: { "age": "30" } (年齢は引用符で囲まれていますが、数字である必要があります)
    • 正しい JSON: { "age": 30 }
  4. 括弧の不一致: 中括弧 {} と角括弧 [] が適切に一致していることを常に確認してください。

    • 無効な JSON: { "名前": "ジョン"、"年齢": 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 Formatter & Validator (https://jsonformatter.curiousconcept.com/) – このツールは、JSON のフォーマットを支援し、エラーの説明を提供します。
  • JSON Prettifier – JSON をクリーンアップして読みやすくするのに役立ちます。

これらのツールは通常、構文の問題を強調表示し、問題の場所を正確に示すエラー メッセージを提供するため、修正が容易になります。

3. JSON をサポートするコード エディターの使用

多くのコード エディター (Visual Studio Code、Sublime Text、Atom など) は、次のような JSON 固有の機能を提供します。

  • 構文の強調表示: 色と書式設定により、一致しない括弧や引用符を視覚的に確認することができます。
  • リンティング: ESLint や TSLint などのツールは、JSON ファイルの問題にフラグを立てるのに役立ちます。
  • 自動フォーマット: VSCode のようなエディターには、JSON インデントを自動的に修正し、無関係な空白を削除する組み込みフォーマッタがあります。

VS コードの例:

  1. JSON ファイルを開きます。
  2. Shift Alt F をクリックして自動フォーマットし、一般的な間隔の問題を修正します。
  3. さらに JSON 形式を設定するには、Prettier などの拡張機能を使用します。

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 の AJV (別の JSON Schema Validator) や Python jsonschema ライブラリのようなツールは、JSON データをスキーマに対して検証するのに役立ちます。

JSON スキーマの例:

  try {
      JSON.parse('{"name": "John", "age": 30}');
      console.log("Valid JSON");
  } catch (e) {
      console.log("Invalid JSON");
  }
ログイン後にコピー

スキーマを使用した 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート