将 json 文件从 GO 服务器提供给 javascript 客户端

我有一个 go 服务器,它必须通过提供 json 文件来响应 javascript 请求。json 文件是一个对象数组。


我的代码:


服务器端


package expt


import (

    "net/http"

)



func init() {

    http.HandleFunc("/", handleStatic)

    http.HandleFunc("/loadTrials", handleloadJson)

}


func handleStatic(w http.ResponseWriter, r *http.Request) {

    w.Header().Set("Cache-Control", "no-cache")

    http.ServeFile(w, r, "static/"+r.URL.Path)

}



func handleloadJson(w http.ResponseWriter, r *http.Request) {

    http.ServeFile(w, r, "static/trial.json")

}

客户端


loadTrials : function loadTrials() {


            var _this = this,

                load = this.shadowRoot.querySelector('#load-trial');


            load.url="http://url:8080/loadTrials";

            load.go()

            load.addEventListener('core-response', function(ev) {

                console.log(ev.detail.response)

            }, false);

        }

杰森


{

  "trial-data" : [

    {

      "trial" : {

        "index": 0,

      }

    },

    {

      "trial" : {

        "index": 1,

      }

    }

  ]

}

如果我这样做,我会在 JavaScript 中获取 JSON 对象,但是如果我尝试查看 JSON 以获取数组 - 即 console.log(ev.detail.response['trial-data']) 那么这不起作用.


四季花海
浏览 189回答 1
1回答

慕妹3146593

ev.detail.response 只是一个字符串响应,它不是一个解析的 json 对象。首先你需要使用解析它JSON.parse()然后你可以访问它的内容。请参阅此 Javascript 示例:var json = '{"trial-data":[{"trial":{"index": 0}},{"trial":{"index":1}}]}'alert(JSON.parse(json)['trial-data'])要访问第一个"index"字段的值,例如:var idx0 = JSON.parse(json)['trial-data'][0]['trial']['index']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go