1// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 2 3package spdx_json 4 5import ( 6 "bytes" 7 "encoding/json" 8 "io" 9 10 "github.com/spdx/tools-golang/spdx/v2_2" 11 "github.com/spdx/tools-golang/spdx/v2_3" 12) 13 14// Load2_2 takes in an io.Reader and returns an SPDX document. 15func Load2_2(content io.Reader) (*v2_2.Document, error) { 16 // convert io.Reader to a slice of bytes and call the parser 17 buf := new(bytes.Buffer) 18 _, err := buf.ReadFrom(content) 19 if err != nil { 20 return nil, err 21 } 22 23 var doc v2_2.Document 24 err = json.Unmarshal(buf.Bytes(), &doc) 25 if err != nil { 26 return nil, err 27 } 28 29 return &doc, nil 30} 31 32// Load2_3 takes in an io.Reader and returns an SPDX document. 33func Load2_3(content io.Reader) (*v2_3.Document, error) { 34 // convert io.Reader to a slice of bytes and call the parser 35 buf := new(bytes.Buffer) 36 _, err := buf.ReadFrom(content) 37 if err != nil { 38 return nil, err 39 } 40 41 var doc v2_3.Document 42 err = json.Unmarshal(buf.Bytes(), &doc) 43 if err != nil { 44 return nil, err 45 } 46 47 return &doc, nil 48} 49