Como agregar identado a un string en json sin tener un struct para hacer un unmarshall.
Se puede alterar el string directamente sin un struct:
package main
import (
"bytes"
"encoding/json"
"fmt"
"log"
)
func PrettyJSON(str string) (string, error) {
var prettyJSON bytes.Buffer
if err := json.Indent(&prettyJSON, []byte(str), "", " "); err != nil {
return "", err
}
return prettyJSON.String(), nil
}
func main() {
rawJSON := `{"name": "Mike", "lastname": "Tyson"}`
response, err := PrettyJSON(rawJSON)
if err != nil {
log.Fatal(err)
}
fmt.Println(response)
}
Resultado:
{
"name": "Mike",
"lastname": "Tyson"
}