Goでjsonをアンマーシャリング: 必須フィールド?
2023-10-12 16:37:11
質問
Goを使用してJSON入力をパースする際に、フィールドが見つからなかった場合にエラーを発生させることは可能でしょうか?
ドキュメントで見つけることができませんでした。
フィールドを必須と指定するタグはないのでしょうか?
どのように解決するのですか?
の中にタグがありません。
encoding/json
パッケージには、フィールドを "required"に設定するタグはありません。自分で
MarshalJSON()
メソッドを書くか、フィールドがないかポストチェックを行う必要があります。
フィールドの欠落をチェックするために、欠落/Nullとゼロ値を区別するためにポインタを使用する必要があります。
type JsonStruct struct {
String *string
Number *float64
}
完全な動作例です。
package main
import (
"fmt"
"encoding/json"
)
type JsonStruct struct {
String *string
Number *float64
}
var rawJson = []byte(`{
"string":"We do not provide a number"
}`)
func main() {
var s *JsonStruct
err := json.Unmarshal(rawJson, &s)
if err != nil {
panic(err)
}
if s.String == nil {
panic("String is missing or null!")
}
if s.Number == nil {
panic("Number is missing or null!")
}
fmt.Printf("String: %s Number: %f\n", *s.String, *s.Number)
}
関連
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] JSONでコメントを使用することはできますか?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] cURLでJSONデータをPOSTするにはどうすればよいですか?
-
[解決済み] JavaScriptでJSONをきれいに印刷する
-
[解決済み] JSONPとは何か、なぜ作られたのか?
-
[解決済み] JavaScriptSerializer - 列挙型を文字列としてJSONシリアライズする
-
[解決済み] .NETでC#オブジェクトをJSON文字列に変換するには?
-
[解決済み] PostgresでJSONフィールドにインデックスを作成するには?
-
[解決済み] Scalaで使うべきJSONライブラリは?[クローズド]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] json gem のインストール中にエラー 'mkmf.rb can't find header files for ruby' が発生する。
-
[解決済み] JSON Schemaにおける "required "と "optional "の違いについて
-
[解決済み] コマンドラインを使用してJSONオブジェクトの項目をカウントする方法は?
-
[解決済み] GIFをLottie jsonに変換するにはどうしたらいいですか?
-
json.loadsがエラーを報告します。二重引用符で囲まれたプロパティ名を期待:行1列2(char 1)
-
[解決済み] JSONファイルのMongoimport
-
[解決済み] どのようにjqを使用して2つのファイルから2つのJSONオブジェクトをマージするには?
-
[解決済み] ネストされたJSONオブジェクトのアンマーシャリング
-
[解決済み] ASP.NETでWebAPIやMVCを使ってJSONを返す。
-
[解決済み] Scalaで使うべきJSONライブラリは?[クローズド]