func (this *Order) UnmarshalJSON(body []byte) error { var _unmarshalled struct { _ string `json:"#operator"` Terms []struct { Expr string `json:"expr"` Desc bool `json:"desc"` } `json:"sort_terms"` offsetExpr string `json:"offset"` limitExpr string `json:"limit"` } err := json.Unmarshal(body, &_unmarshalled) if err != nil { return err } this.terms = make(algebra.SortTerms, len(_unmarshalled.Terms)) for i, term := range _unmarshalled.Terms { expr, err := parser.Parse(term.Expr) if err != nil { return err } this.terms[i] = algebra.NewSortTerm(expr, term.Desc) } if offsetExprStr := _unmarshalled.offsetExpr; offsetExprStr != "" { offsetExpr, err := parser.Parse(offsetExprStr) if err != nil { return err } this.offset = NewOffset(offsetExpr) } if limitExprStr := _unmarshalled.limitExpr; limitExprStr != "" { limitExpr, err := parser.Parse(limitExprStr) if err != nil { return err } this.limit = NewLimit(limitExpr) } return nil }
func (this *Order) UnmarshalJSON(body []byte) error { var _unmarshalled struct { _ string `json:"#operator"` Terms []struct { Expr string `json:"expr"` Desc bool `json:"desc"` } `json:"sort_terms"` } err := json.Unmarshal(body, &_unmarshalled) if err != nil { return err } this.terms = make(algebra.SortTerms, len(_unmarshalled.Terms)) for i, term := range _unmarshalled.Terms { expr, err := parser.Parse(term.Expr) if err != nil { return err } this.terms[i] = algebra.NewSortTerm(expr, term.Desc) } return nil }