ホームページ >バックエンド開発 >Golang >「文字列を Int64 型の Go 値にアンマーシャリングできません」という JSON 解析エラーを解決する方法

「文字列を Int64 型の Go 値にアンマーシャリングできません」という JSON 解析エラーを解決する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-26 14:56:08502ブラウズ

How to Resolve

JSON 解析エラー:「文字列を Int64 型の Go 値にアンマーシャリングできません」

問題:
に割り当てられた文字列値を使用して JSON データをアンマーシャリングしようとすると、 int64 フィールドの場合、ソース文字列と予期される整数値の間の型の不一致により、アンマーシャリング プロセスが失敗します。

問題の詳細:
カスタム Go 構造体は、JSON を使用して int64 フィールドを定義します。 struct タグを使用して JSON プロパティにマップします。ただし、jQuery スクリプトは JSON オブジェクトを変更し、整数ではなく文字列としてエンコードします。これにより、予期される int64 値の代わりに文字列が送信されます。

解決策:
この型変換の問題を処理するには、関連フィールドに「,string」タグを追加します。 。更新された構造体タグは次のとおりです。

type tySurvey struct {
   Id   int64  `json:"id,string,omitempty"`
   Name string `json:"name,omitempty"`
}

JSON 構造体タグで「,string」を指定すると、アンマーシャリング プロセスはフィールド値が文字列である可能性があることを認識し、それを文字列に変換しようとします。 int64 フィールドに割り当てる前に整数を指定してください。

補足:
重要です文字列値が空の文字列の場合、omitempty オプションはエンコード中にのみ使用されるため、デコードできないことに注意してください。

以上が「文字列を Int64 型の Go 値にアンマーシャリングできません」という JSON 解析エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。