2014-11-25 2 views
1

SQL 출력 (GORP)을 JSON으로 변환하려고합니다. 나는 gorp을 mySql과 함께 사용하고있다. 여기json에 대한 Gorm 출력

난 당신이 날 내가 뭘 잘못 알려 주시기 바랍니다 수있는이

{"mane_id":3323, "manetana":"ABC", "yajamana":"hgy"},{"mane_id":2323, "manetana":"ADFC", "yajamana":"FDER"},{"mane_id":12343, "manetana":"GDSC", "yajamana":"hFDEy"} 

같은 기대를 출력하고

type Mane struct { 
    ManeId string `db:"mane_id"` 
    Manetana string `db:"manetana"` 
    Yajamana string `db:"yajamana"` 
} 

var manegalu []Mane 
_, err = dbmap.Select(&manegalu, "SELECT mane_id, manetana, yajamana FROM kd_mane") 

//Option 1: Not working: Array of numbers. Not the actual json 
a, err := json.Marshal(manegalu) 
mt.Fprint(w, string(a)) 

//Option 2: Not working: Array of numbers. Not the actual json 
for _, p := range manegalu { 
    a, err := json.Marshal(p) 
    fmt.Fprint(w, string(a)) 
} 

내 선택 코드? 나는 왜 옵션 1이 작동하지 않는지 이해합니다. 그러나 옵션 2는 나를 위해 좋은 것처럼 보입니다 https://gobyexample.com/json

답변

0

을 참조하십시오.

a, err := json.Marshal(manegalu) //get json byte array 
n := len(a) //Find the length of the byte array 
s := string(a[:n]) //convert to string 
fmt.Fprint(w, s) //write to response 
1

json.Marshal() 두 값, []byteerror을 반환합니다. 당신은 단지 당신의 예에서 첫 번째를 할당하고 있습니다. http://golang.org/pkg/encoding/json/#Marshal을 참조하십시오.

a, err := json.Marshal(manegalu) 

편집 : fmt.Fprint과 함께 사용하려면 바이트 배열을 문자열로 변환해야합니다.

w.Write(a) 

fmt 패키지를 가져 오지 않고 결과를 인쇄 : 당신은 또한 사용할 수 있도록 귀하의 경우에는, wio.Writer 인터페이스입니다. http://golang.org/pkg/io/#Writer