func ParseJSONToQuadList(jsonBody []byte) (out []quad.Quad, _ error) { var quads []struct { Subject string `json:"subject"` Predicate string `json:"predicate"` Object string `json:"object"` Label string `json:"label"` } err := json.Unmarshal(jsonBody, &quads) if err != nil { return nil, err } out = make([]quad.Quad, 0, len(quads)) for i, jq := range quads { q := quad.Quad{ Subject: quad.StringToValue(jq.Subject), Predicate: quad.StringToValue(jq.Predicate), Object: quad.StringToValue(jq.Object), Label: quad.StringToValue(jq.Label), } if !q.IsValid() { return nil, fmt.Errorf("invalid quad at index %d. %s", i, q) } out = append(out, q) } return out, nil }