func()

in datahub/resultmodel.go [1075:1105]


func (gtr *ListTopicSchemaResult) UnmarshalJSON(data []byte) error {
	type RecordSchemaInfoHelper struct {
		VersionId    int    `json:"VersionId"`
		RecordSchema string `json:"RecordSchema"`
	}

	msg := &struct {
		SchemaInfoList []RecordSchemaInfoHelper `json:"RecordSchemaList"`
	}{}

	if err := json.Unmarshal(data, msg); err != nil {
		return err
	}

	for _, info := range msg.SchemaInfoList {
		schema := &RecordSchema{}
		if err := json.Unmarshal([]byte(info.RecordSchema), schema); err != nil {
			return err
		}
		for idx := range schema.Fields {
			schema.Fields[idx].AllowNull = !schema.Fields[idx].AllowNull
		}

		schemaInfo := RecordSchemaInfo{
			VersionId:    info.VersionId,
			RecordSchema: *schema,
		}
		gtr.SchemaInfoList = append(gtr.SchemaInfoList, schemaInfo)
	}
	return nil
}