# API04003: 不正なJSONレスポンス

## これは何を意味するか[​](#what-this-means "これは何を意味するかへの直接リンク")

サーバーはJSONのように見えるデータを返しましたが、それが破損しているか無効です。POSはJSON構文が壊れているため、レスポンスを解析できませんでした。

## 一般的な原因[​](#common-causes "一般的な原因への直接リンク")

* **PHPの通知/警告** — JSONの前に出力されたPHP
* **BOM (バイトオーダーマーク)** — ファイルの先頭にある不可視文字
* **エンコーディングの問題** — 文字エンコーディングの問題
* **切り捨てられたレスポンス** — 転送中にレスポンスが切断された
* **プラグインの出力** — プラグインが非JSONコンテンツを追加した

## 修正方法[​](#how-to-fix "修正方法への直接リンク")

### 1. PHPの通知を確認する[​](#1-check-for-php-notices "1. PHPの通知を確認するへの直接リンク")

JSONの前にPHPの通知/警告があると解析が中断されます：

`wp-config.php`で：

```
define('WP_DEBUG', true);

define('WP_DEBUG_LOG', true);

define('WP_DEBUG_DISPLAY', false);
```

`wp-content/debug.log`を確認し、問題を修正します。

### 2. BOM文字を確認する[​](#2-check-for-bom-characters "2. BOM文字を確認するへの直接リンク")

一部のテキストエディタは不可視のBOM文字を追加します：

* BOMなしでPHPファイルを再保存してください
* BOMなしのUTF-8エンコーディングを使用
* 最近編集したファイルを確認

### 3. 完全なレスポンスを確認する[​](#3-verify-complete-response "3. 完全なレスポンスを確認するへの直接リンク")

レスポンスが切り捨てられる場合：

* PHPの出力バッファリング設定を確認
* php.iniで`output_buffering`を増加
* タイムアウトの問題を確認

### 4. APIを直接テストする[​](#4-test-api-directly "4. APIを直接テストするへの直接リンク")

ブラウザまたはcurlを使用して：

```
curl -v https://yoursite.com/wp-json/wcpos/v1/
```

JSONの前に予期しないコンテンツがないか確認します。

### 5. 文字エンコーディングを確認する[​](#5-check-character-encoding "5. 文字エンコーディングを確認するへの直接リンク")

データベースとPHPがUTF-8を使用していることを確認：

* `wp-config.php`の文字セット設定を確認
* データベーステーブルがUTF-8であることを確認
* 問題を引き起こす特別な文字を探します

## 関連エラー[​](#related-errors "関連エラーへの直接リンク")

* [API04001](/ja/error-codes/API04001.md) — 無効なレスポンス形式
* [API04005](/ja/error-codes/API04005.md) — JSONの復旧を試みました
