正确解析 JSON 数据

Properly parsing JSON data

我想从返回的 JSON 字符串中得到 key/value 对;根据我的尝试,我做错了什么?

$(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 exception: Unexpected token o in JSON at position 1" "SyntaxError: Unexpected token o in JSON at position 1
    at Function.parse [as parseJSON] (<anonymous>)
    at HTMLDocument.<anonymous> (pen.js:13:21)
    at j (https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js:2:29948)
    at k (https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js:2:30262)" undefined
结果

$.getJSON 没有 return JSON。它是一个异步函数,结果传递给回调。它已经被解析了(这是 $.get$.getJSON 之间的唯一区别),所以你不需要使用像 $.parseJSON

这样的函数
$.getJSON($json_url, function(result) {
    console.log(result.animal);
});