소스는 다음과 같습니다.

package main

import "fmt"
import "encoding/json"
import "io/ioutil"
import "os"

func prettifierJson(jsonFileName string) {
	var parsed interface{}

	content, err := ioutil.ReadFile(jsonFileName)
	if err != nil {
		panic(err)
	}

	json.Unmarshal(content, &parsed)
	jsonData, err := json.MarshalIndent(parsed, "", "  ")
	if err != nil {
		panic(err)
	}

	fmt.Println(string(jsonData))
}


func main() {
	if len(os.Args) == 2 {
		prettifierJson(os.Args[1])
	} else {
		fmt.Println(os.Args[0] + " <json filename>")
	}
}


우선 json을 처리하기 위해서 "encoding/json"패키지를 사용했습니다.


소스에서 하는 내용은 간단합니다.


우선 인자로 받은 파일의 내용을 읽어서 json 패키지의 Unmarshal 함수를 사용하여 내용을 파싱한 후, MarshalIndent 함수를 사용하여 스페이스2칸씩 들여쓰기를 하여 화면에 출력하는 내용입니다.


예외처리 등등은 하지 않았으나, 간단하게 엉망으로 저장된 json 파일을 prettifier할 수 있습니다.