我有一个json url,它以以下格式返回数据
{
"photos" : [
{
"id": 1, "image":"https://path/to/my/image/1.jpg"
},
{
"id": 2, "image":"https://path/to/my/image/2.jpg"
}
]
}
我在javascript函数中使用json,并且需要对其进行操作以删除根密钥。即我想要看起来像的东西
[
{
"id": 1, "image":"https://path/to/my/image/1.jpg"
},
{
"id": 2, "image":"https://path/to/my/image/2.jpg"
}
]
我一直在研究各种方法,并提到过类似SO的几篇文章,但似乎没有任何效果。以下似乎应该。
var url = 'http://path/to/my/json/feed.json';
var jsonSource = $.getJSON( url );
var jsonParsed = $.parseJSON(jsonSource);
var jsonFeed = jsonParsed.photos
我究竟做错了什么?
最佳答案
那里有几个问题。
这是无效的JSON,有两种不同的方式。 A):
之后的"photos"
表示它是一个属性初始化器,但是当它应位于对象([...]
)内时,它位于数组({...}
)内。 B)"
键前面有多余的images
字符。因此,第一件事就是解决该问题。
您正在尝试使用$.getJSON
的返回值,就像它是包含JSON文本的字符串一样。但是$.getJSON
返回一个jqXHR
对象。您需要为其进行成功回调。该回调将通过对象图进行调用,JSON会自动为您解析。
假设JSON已修复如下所示:
{
"photos": [
{
"id": 1,
"image": "https://path/to/my/image/1.jpg"
},
{
"id": 2,
"image": "https://path/to/my/image/2.jpg"
}
]
}
然后:
$.getJSON(url, function(data) {
var photos = data.photos;
// `photos` now refers to the array of photos
});
关于javascript - 如何操作JSON对象以删除Javascript中的根 key ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20186716/