Implement and use MarshalIndentFromJSON
This commit is contained in:
parent
7e67d84c0e
commit
3ecc461385
|
@ -1,7 +1,6 @@
|
|||
package context
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
|
@ -261,12 +260,7 @@ func (ctx CLIContext) Print(toPrint interface{}) error {
|
|||
// error. The re-encoded JSON uses the standard library as the initial encoded
|
||||
// JSON should have the correct output produced by ctx.Marshaler.
|
||||
if ctx.Indent && err == nil {
|
||||
var generic interface{}
|
||||
|
||||
err = json.Unmarshal(out, &generic)
|
||||
if err == nil {
|
||||
out, err = json.MarshalIndent(generic, "", " ")
|
||||
}
|
||||
out, err = sdk.MarshalIndentFromJSON(out)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -14,6 +14,19 @@ var (
|
|||
DBBackend = ""
|
||||
)
|
||||
|
||||
// MarshalIndentFromJSON returns indented JSON-encoded bytes from already encoded
|
||||
// JSON bytes. The output encoding will adhere to the original input's encoding
|
||||
// (e.g. Proto3).
|
||||
func MarshalIndentFromJSON(bz []byte) ([]byte, error) {
|
||||
var generic interface{}
|
||||
|
||||
if err := json.Unmarshal(bz, &generic); err == nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return json.MarshalIndent(generic, "", " ")
|
||||
}
|
||||
|
||||
// SortedJSON takes any JSON and returns it sorted by keys. Also, all white-spaces
|
||||
// are removed.
|
||||
// This method can be used to canonicalize JSON to be returned by GetSignBytes,
|
||||
|
|
Loading…
Reference in New Issue