不明な形式の JSON データをアンマーシャルする
提供された JSON は特定のパターンに従います:
{ SUBJECT1: [{Student_Name1: Grade, Student_Name2: Grade, ... , Student_Name3: Grade, timestamp: Timestamp(...)}], SUBJECT2: [{Student_Name4: Grade, Student_Name6: Grade, ... , Student_Name5: Grade, timestamp: Timestamp(...)}] ... SUBJECTN: [{Student_Name1: Grade, Student_Name6: Grade, ... , Student_Name9: Grade, timestamp: Timestamp(...)}] }
目標: JSON を GoLang 構造体にアンマーシャルして返すJSON オブジェクトとして。
解決策:
オプション 1: map[string] インターフェースを使用する{}
JSON キーは不明です。map[string]interface{} を使用してアンマーシャリングできます。 payload.
var grades map[string]interface{} err := json.Unmarshal([]byte(jsonString), &grades) fmt.Println(err) fmt.Printf("%#v\n", grades)
オプション 2: 構造体の使用
構造体が必要な場合は、json:"-" タグを使用して、JSON マーシャリング中にフィールドを無視します/アンマーシャリング中。
type GradeData struct { Grades map[string]interface{} `json:"-"` } err := json.Unmarshal([]byte(jsonString), &gradesData.Grades) fmt.Println(err) fmt.Printf("%#v\n", gradesData)
以上がGo で不明な JSON データ構造をアンマーシャリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。