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 サイトの他の関連記事を参照してください。