2013-11-25 37 views
1

我有一个JSON的网址,我使用的JavaScript函数的JSON和需要处理以去除根密钥格式如何操作JSON对象以删除Javascript中的根密钥?

{ 
    "photos" : [ 
    { 
     "id": 1, "image":"https://path/to/my/image/1.jpg" 
    }, 
    { 
     "id": 2, "image":"https://path/to/my/image/2.jpg" 
    } 
    ] 
} 

返回数据。即我想要的东西,看起来像

[ 
    { 
    "id": 1, "image":"https://path/to/my/image/1.jpg" 
    }, 
    { 
    "id": 2, "image":"https://path/to/my/image/2.jpg" 
    } 
] 

我一直在用各种方法黑客周围,并都提到了几个类似的帖子上如此,但似乎没有任何工作。以下似乎应该。

var url = 'http://path/to/my/json/feed.json'; 
var jsonSource = $.getJSON(url); 
var jsonParsed = $.parseJSON(jsonSource); 
var jsonFeed = jsonParsed.photos 

我在做什么错?

+0

@安迪:复制和粘贴是你的朋友。 :-) –

回答

5

那里有几个问题。

  1. 这是无效的JSON,有两种不同的方式。 A)"photos":意味着它是一个属性初始化,但它是一个阵列([...])内部时,它应该是一个对象({...})的内部。 B)在images键前面还有"字符。所以首先要解决这个问题。

  2. 您正在尝试使用的$.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 
}); 
+0

谢谢TJ,你的回答是有道理的,但我在控制台中得到'Uncaught SyntaxError:Unexpected token:'。我怎样才能调试是什么造成这种情况? –

+0

@AndyHarvey:错误应该告诉你什么代码抛出错误。它可能是JSON中的错误(例如,它看起来不像上面那样)或代码。上面的代码与上面的JSON一起工作。 –

+0

这是你如何删除,但你如何添加一个根密钥? –