github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/pkg/formatters/json.go (about) 1 package formatters 2 3 import ( 4 "encoding/json" 5 6 "github.com/khulnasoft-lab/defsec/pkg/scan" 7 ) 8 9 func outputJSON(b ConfigurableFormatter, results scan.Results) error { 10 jsonWriter := json.NewEncoder(b.Writer()) 11 jsonWriter.SetIndent("", "\t") 12 var flatResults = []scan.FlatResult{} 13 for _, result := range results { 14 switch result.Status() { 15 case scan.StatusIgnored: 16 if !b.IncludeIgnored() { 17 continue 18 } 19 case scan.StatusPassed: 20 if !b.IncludePassed() { 21 continue 22 } 23 } 24 flat := result.Flatten() 25 flat.Links = b.GetLinks(result) 26 flat.Location.Filename = b.Path(result, result.Metadata()) 27 flatResults = append(flatResults, flat) 28 } 29 return jsonWriter.Encode(struct { 30 Results []scan.FlatResult `json:"results"` 31 }{flatResults}) 32 }