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

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

Linda Hamilton
リリース: 2024-11-26 14:56:08
オリジナル
490 人が閲覧しました

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

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