$.get("api/suites", function(result){
console.log("the suites get api result is of type - " + typeof result)
console.log("the list of custom suites are " + result)
}, "json")
打印,
the suites get api result is of type - string
the list of custom suites are "{\"suites\":[\"h\",\"b\"]}"
使用curl检查响应标头 -
curl -v -X GET http://localhost:8002/api/suites
所示,
Content-Type: application/json; charset=utf-8
"{\"suites\":[\"h\",\"b\"]}"
为什么$ .get在调用回调函数之前不将json数据转换为对象?
我尝试使用ajax调用而不是$ .get,但回调仍然是一个字符串。
$.ajax({"url": "api/suites", "method": "GET", "dataType": "json", headers: { Accept : "application/json; charset=utf-8" }})
答案 0 :(得分:2)
问题是响应有额外的引号包装对象的json表示...使它成为json in json
字符串(缺少更好的描述)
删除服务器上包含外部{}
的额外引号,以便转换为对象有效
答案 1 :(得分:0)
我不认为它会自动完成。不确定您是否正在调用自己的API,但您要求的API是以字符串格式返回响应。以下应该有效:
result = JSON.parse(result)