亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

錯誤地轉換為 JSON 字符串

錯誤地轉換為 JSON 字符串

Go
三國紛爭 2022-09-12 16:09:01
我正在編寫一個API,該API對OSMR服務器執行查詢并檢索一些數據,嘗試將此數據轉換為JSON并在我的API中返回它,一切工作幾乎正常,但是結果字符串中的數值不是數值,而是用字符“{}”替換。我不知道發生了什么,我已經研究了這個問題一個小時package mainimport (    "encoding/json"    "fmt"    "net/http"    "net/url"    "time"    "log"    "bytes"    "github.com/stretchr/objx"    "github.com/go-martini/martini")func PrettyJson(data interface{}) (string) {    buffer := new(bytes.Buffer)    encoder := json.NewEncoder(buffer)    encoder.SetIndent("", "    ")    err := encoder.Encode(data)    if err != nil {       return ""    }    return buffer.String()}func main() {    app := martini.Classic()    app.Get("/", func() string {        return "/"    })    app.Get("/routes", func(req *http.Request, res http.ResponseWriter) string {        query, err := url.ParseQuery(req.URL.RawQuery)        if err != nil {            log.Println(err)        }        var client = &http.Client{Timeout: 100 * time.Second}        if v1, v2 := query["src"], query["dst"]; v1 != nil && v2 != nil {            var routes_array []map[string]interface{}            for _, destination := range query["dst"] {                request_url := fmt.Sprintf("http://router.project-osrm.org/route/v1/driving/%s;%s?overview=false", query["src"][0], destination)                response, err := client.Get(request_url)                if err != nil {                    log.Fatal(err)                    return "{\"message\": \"internal server error\"}"                }                        buf := new(bytes.Buffer)                buf.ReadFrom(response.Body)                newStr := buf.String()                document, _ := objx.FromJSON(newStr)                            route := map[string]interface{}{                    "destination": destination,                    "distance":    document.Get("routes[0].distance"),                    "duration":    document.Get("routes[0].duration"),                }                routes_array = append(routes_array, route)            }        }
查看完整描述

1 回答

?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

個奧布吉克斯。值被封送到一個空對象,因為該類型沒有任何導出的字段。

使用 Data 方法獲取基礎值。封送基礎值。

route := map[string]interface{}{

    "destination": destination,

    "distance":    document.Get("routes[0].distance").Data(),

    "duration":    document.Get("routes[0].duration").Data(),

}


查看完整回答
反對 回復 2022-09-12
  • 1 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號