# 無効な JSON のデバッグ

コパイロットチャット は、JSON データの構文エラーや構造上の問題を特定して解決できます。

JSON データを扱うとき、末尾のコンマ、中かっこの不一致、不適切なデータ型など、JSON が無効になる問題が発生することがあります。 GitHub Copilot Chat による、無効な JSON を解決するための修正の提案は、これらのエラーのデバッグと修正に役立ちます。

## シナリオ例

アプリケーションが API から JSON データを使用しているものの、無効な書式設定が原因で応答の解析が失敗するシナリオを考えてみます。 次のようなエラー メッセージを受け取ります。

```bash
Error: Parse error
----------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined'
```

エラーの原因になったのは次の JSON データです。

```json id=json-error
{
  "location": "San Francisco",
  "current_weather": {
    "temperature": 18,
    "unit": "Celsius",
    "conditions": "Cloudy
  },
  "forecast": {
    "day": "Monday",
    "high": 22,
    "low": 15,
    "precipitation": 10
  }
}
```

## プロンプトの例

```copilot copy prompt ref=json-error
Why is my JSON object invalid and how can I fix it?
```

## 応答の例

> \[!NOTE] 次の応答は例です。 コパイロットチャット の応答は非決定的であるため、ここで示したものとは異なる応答が返される可能性があります。

Copilot は、`conditions` 値に終了引用符がないため JSON が無効であることを示唆する可能性があります。 修正後の JSON は次のようになります。

```json
{
  "location": "San Francisco",
  "current_weather": {
    "temperature": 18,
    "unit": "Celsius",
    "conditions": "Cloudy"
  },
  "forecast": {
    "day": "Monday",
    "high": 22,
    "low": 15,
    "precipitation": 10
  }
}
```

この応答例での Copilot の提案には、`conditions` 値の終了引用符の修正が含まれ、それによって JSON 解析エラーは解決します。

## 参考資料

* [GitHub Copilot Chat のプロンプト エンジニアリング](/ja/copilot/using-github-copilot/prompt-engineering-for-github-copilot)
* [GitHub Copilot の使用に関するベスト プラクティス](/ja/copilot/using-github-copilot/best-practices-for-using-github-copilot)