我有一个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/

10-17 02:30