標籤:mars out ... type 胡潤百富榜 http 類型 highlight mux
package mainimport ( "fmt" "net/http" //"net/url" "github.com/drone/routes" "database/sql" _ "github.com/go-sql-driver/mysql" "encoding/json")var db = &sql.DB{}func init(){ var err interface{}db, err = sql.Open("mysql", "root:[email protected](localhost:3306)/mytest?charset=utf8") if err!=nil{ fmt.Println("資料庫連接出錯") }else{ fmt.Println("suc sql connect") }}type BaseRes struct{ Code int Msg string Data interface{}}func (b BaseRes) sucSet(m string,c int) BaseRes{ b.Code=c b.Msg=m return b //這裡要返回出去才能被外界訪問,因為這是一個閉包}type Article struct{ Title string Author string Time string Content string}type ArticleTwo struct{ Id int Title string Content string}func testRoute(w http.ResponseWriter,r *http.Request){ var sid Article sid.Title="第一女首富的最好時刻又來了" sid.Author="周聰明" sid.Time="2014-12-03" sid.Content="十一年前的今天,當年的胡潤百富榜發布,49歲的張茵擁有財富270億元,成為中國第一位女首富,也是世界上最富有的女性白手起家者。當胡潤公布首富人名時,場下只有兩三" var sendData BaseRes sendData.Code=10000 sendData.Msg="success" sendData.Data=sid res,_:=json.Marshal(sendData) fmt.Fprintln(w, string(res))}func testRouteTwo(w http.ResponseWriter,r *http.Request){ rows, _ := db.Query("select * from article") var a ArticleTwo var arr []ArticleTwo //定義一個arr的數組用來儲存ArticleTwo類型的資料 for rows.Next() { rows.Scan(&a.Title, &a.Content, &a.Id) //儲存ArticleTwo類型的資料 arr=append(arr,a) //迴圈加入數組中 } var b BaseRes b.Data=arr b=b.sucSet("suc",10000) res,_:=json.Marshal(b) fmt.Fprintln(w, string(res))}func main() { fmt.Println("正在啟動WEB服務...") var mux *routes.RouteMux = routes.New() mux.Get("/",testRoute) mux.Get("/two",testRouteTwo) //http.Handle("/", mux) http.ListenAndServe(":8088", mux) fmt.Println("服務已停止")}
go api json 輸出嘗試