ホームページ > バックエンド開発 > Golang > Go で JSON をアンマーシャリングすると「無効な文字」エラーが発生するのはなぜですか?

Go で JSON をアンマーシャリングすると「無効な文字」エラーが発生するのはなぜですか?

Susan Sarandon
リリース: 2024-12-24 22:48:19
オリジナル
362 人が閲覧しました

Why Am I Getting an

Go JSON Unmarshal での無効な文字エラー

XML メッセージを含む JSON を投稿しようとすると、「値の始まりを探している無効な文字 'b'」というエラーが表示されます。サーバーからの無効な JSON 応答。これは、応答本文が JSON 形式でない場合によく発生します。

問題は、応答本文が json.Unmarshal を使用して解析されているコードにある可能性があります。これをデバッグするには、次の手順に従います。

err := json.Unmarshal(resBody, v)
if err != nil {
    log.Printf("error decoding sakura response: %v", err)
    if e, ok := err.(*json.SyntaxError); ok {
        log.Printf("syntax error at byte offset %d", e.Offset)
    }
    log.Printf("sakura response: %q", resBody)
    return err
}
ログイン後にコピー

このコードでは:

  • 最初に、応答本文を指定された v インターフェイスにアンマーシャルしようとします。
  • アンマーシャリングが失敗した場合は、エラーをログに記録します。
  • エラーがjson.SyntaxError として、構文エラーが発生した正確なバイト オフセットを記録します。
  • 最後に、デバッグ目的で生の応答本文を記録します。

これらのログ ステートメントを追加すると、無効な文字エラーの原因を正確に特定し、サーバーが有効な JSON 応答を返さない理由を判断できます。

以上がGo で JSON をアンマーシャリングすると「無効な文字」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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