package client
import (
"encoding/json"
"fmt"
"io"
)
// JSONPrinter is an implementation of ResourcePrinter which parsess raw JSON, and
// re-formats as indented, human-readable JSON.
type JSONPrinter struct{}
// Print parses the data as JSON, re-formats as JSON and prints the indented
// JSON.
func (y *JSONPrinter) Print(data []byte, w io.Writer) error {
var obj interface{}
if err := json.Unmarshal(data, &obj); err != nil {
return err
}
output, err := json.MarshalIndent(obj, "", " ")
if err != nil {
return err
}
_, err = fmt.Fprint(w, string(output))
return err
}