正确解析 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);
});
我想从返回的 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);
});