Javascript 正确解析JSON数据

Javascript 正确解析JSON数据,javascript,jquery,json,getjson,Javascript,Jquery,Json,Getjson,我想从返回的JSON字符串中获取键/值对;基于我的努力,我做错了什么 $(document).ready(function(){ var json_url = "http://hudsonspine.com/ldn/ldn.json"; var json_str = $.getJSON(json_url); var json_strfy = JSON.stringify(json_str); var json_to_obj = $.parseJSON(json_str); c

我想从返回的JSON字符串中获取键/值对;基于我的努力,我做错了什么

$(document).ready(function(){
  var json_url = "http://hudsonspine.com/ldn/ldn.json";
  var json_str = $.getJSON(json_url);
  var json_strfy = JSON.stringify(json_str);
  var json_to_obj = $.parseJSON(json_str);
  console.log(json_to_obj.animal);  
});
我得到以下错误(我假设这意味着数据格式不正确,即使我的JSON源代码看起来还可以):

“jQuery.Deferred异常:位置1处JSON中的意外标记o”语法错误:位置1处JSON中的意外标记o
在Function.parse[as parseJSON]()
在HTMLDocument上。(pen.js:13:21)
在j(https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js:2:29948)
在k(https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js:2:30262)“未定义

$。getJSON
不会作为结果返回JSON。这是一个异步函数,结果被传递给回调函数。它已经被解析了(这是
$.get
$.getJSON
之间的唯一区别),因此您不需要使用类似
$.parseJSON

$.getJSON($json_url, function(result) {
    console.log(result.animal);
});

$.getJSON
不会作为结果返回JSON。这是一个异步函数,结果被传递给回调函数。它已经被解析了(这是
$.get
$.getJSON
之间的唯一区别),因此您不需要使用类似
$.parseJSON

$.getJSON($json_url, function(result) {
    console.log(result.animal);
});

$.getJSON(json\u url)
是一个异步调用-因此下一行将在
getJSON
完成之前执行。一旦您解决了整个异步问题,并了解了$.getJSON的实际工作方式-
json\u str
将实际上是一个javascript对象-为什么要将其字符串化-将其保存为json\u strfy?显然,使用jquery的低级parseJSON解析javascript对象将失败
$.getJSON(json\uURL)
是一个异步调用-因此下一行将在
getJSON
完成之前执行。一旦您解决了整个异步问题,并了解了$.getJSON的实际工作方式-
json\u str
将实际上是一个javascript对象-为什么要将其字符串化-将其保存为json\u strfy?显然,尝试使用jquery的低级parseJSON解析javascript对象将失败