내장 기능을 사용하여 Go에서 JSON 출력을 예쁘게 인쇄
Go 프로그램에서 JSON 출력을 처리할 때 JSON 출력을 처리하는 것이 바람직할 경우가 많습니다. 인간이 읽을 수 있습니다. jq를 이러한 목적으로 사용할 수 있지만 Go 표준 라이브러리에는 원하는 결과를 얻을 수 있는 내장 함수도 있습니다.
Json Marshal Indenting
인코딩/json 패키지는 JSON 출력을 예쁘게 인쇄하기 위한 json.MarshalIndent() 함수를 제공합니다. 두 개의 추가 매개변수가 필요합니다.
빈 문자열을 접두어로 전달하고 공백을 들여쓰기로 전달하면 사람이 읽을 수 있는 JSON을 얻을 수 있습니다. 출력:
m := map[string]interface{}{"id": "uuid1", "name": "John Smith"} data, err := json.MarshalIndent(m, "", " ") if err != nil { panic(err) } fmt.Println(string(data))
출력:
{ "id": "uuid1", "name": "John Smith" } { "id": "uuid1", "name": "John Smith" }
인코더 사용 시 json.Encoder.SetIndent() 메서드를 사용하여 들여쓰기 매개변수를 설정할 수도 있습니다:
enc := json.NewEncoder(os.Stdout) enc.SetIndent("", " ") if err := enc.Encode(m); err != nil { panic(err) }
제이슨 들여쓰기
이미 JSON 문자열이 있는 경우 json.Indent() 함수를 사용하여 형식을 지정할 수 있습니다.
src := `{"id":"uuid1","name":"John Smith"}` dst := &bytes.Buffer{} if err := json.Indent(dst, []byte(src), "", " "); err != nil { panic(err) } fmt.Println(dst.String())
출력:
{ "id": "uuid1", "name": "John Smith" }
위 내용은 내장 기능을 사용하여 Go에서 JSON 출력을 예쁘게 인쇄하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!