Jquery $ .get不在内部解析json响应

时间:2015-07-26 05:00:44

标签: jquery ajax json

  $.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" }})

2 个答案:

答案 0 :(得分:2)

问题是响应有额外的引号包装对象的json表示...使它成为json in json字符串(缺少更好的描述)

删除服务器上包含外部{}的额外引号,以便转换为对象有效

答案 1 :(得分:0)

我不认为它会自动完成。不确定您是否正在调用自己的API,但您要求的API是以字符串格式返回响应。以下应该有效:

result = JSON.parse(result)