Javascript json响应中引用值的问题

Javascript json响应中引用值的问题,javascript,json,Javascript,Json,将照片上传到外部云CDN会向我返回一个json结果,其中包含我刚刚上传的照片的相关信息。其中一个字段被称为public_id;这是我需要存储在数据库中的内容 响应如下所示: { "public_id":"ddbkckukliohfc0rydsa", "version":1432446422, "signature":"4cd9b48e1e0504792fa0a468d6a6285ceb6a466a", "width":158, "height":158, "format"

将照片上传到外部云CDN会向我返回一个json结果,其中包含我刚刚上传的照片的相关信息。其中一个字段被称为public_id;这是我需要存储在数据库中的内容

响应如下所示:

{
  "public_id":"ddbkckukliohfc0rydsa",
  "version":1432446422,
  "signature":"4cd9b48e1e0504792fa0a468d6a6285ceb6a466a",
  "width":158,
  "height":158,
  "format":"jpg",
  "resource_type":"image",
  "created_at":"2015-05-24T05:47:02Z",
  "tags":[],
  "bytes":6741,
  "type":"upload",
  "etag":"34af2941f140b76ef1cb9f4a549b04a5"
}
当它返回时,调用下面的js函数

   function(error, result) {
     console.log(error, result);
     var t = result["public_id"];
     alert(t);
   }
当我
alert(t)
我被低估,但当我将其更改为:

   function(error, result) {
     console.log(error, result);
     var t = result.public_id;
     alert(t);
   }
我也没有定义


怎么回事

如果包含的输出是
控制台.log
的结果,那么就有了字符串结果,需要调用字符串上的
JSON.parse()
,以获取对象

我相信这对你会更好

function(error, result) {
  console.log(error, result);
  var theObj = JSON.parse(result);
  var t = theObj.public_id;
  alert(t);
}

刚刚尝试了您的建议,但我得到了JSON.parse:JSON.parse(result)上JSON数据的第1行第2列的意外字符;line@ScottAtkinson这很奇怪。它看起来像格式良好的JSON。由于您的console.log在没有注释的情况下同时发出错误和结果,因此API是否使用节点样式回调,或者是否可以将其作为一个简单的成功处理程序调用,以使错误参数实际上是您的数据?我刚刚拆分了控制台日志,因此现在有两个,一个用于错误,另一个用于结果,错误将在控制台中打印null,而结果将打印我在中显示的内容。我95%确定他们正在使用节点样式的回调;我可以得到相关的字段。是的,这听起来像是一个节点式的回调。很奇怪。如果您将控制台日志内容直接复制/粘贴到联机JSON解析器/查看器中,它工作正常吗?似乎未转义的
双引号围绕属性导致JSON.parse()出现问题。