Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何操作JSON对象以删除Javascript中的根键?_Javascript_Jquery_Json - Fatal编程技术网

如何操作JSON对象以删除Javascript中的根键?

如何操作JSON对象以删除Javascript中的根键?,javascript,jquery,json,Javascript,Jquery,Json,我有一个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,需要对其进行操作以删除根键。i、 我想要看起来像的东西 [ { "id":

我有一个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,需要对其进行操作以删除根键。i、 我想要看起来像的东西

[
  {
    "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

我做错了什么?

有几个问题

这是无效的JSON,有两种不同的方式。答:在photos之后意味着它是一个属性初始值设定项,但它在数组[…]中,而它应该在对象{…}中。B图像键前面有额外字符。所以第一件事就是解决这个问题

您试图使用$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"
      }
    ]
}
然后:


这里有几个问题

这是无效的JSON,有两种不同的方式。答:在photos之后意味着它是一个属性初始值设定项,但它在数组[…]中,而它应该在对象{…}中。B图像键前面有额外字符。所以第一件事就是解决这个问题

您试图使用$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"
      }
    ]
}
然后:


谢谢TJ,你的回答是有道理的,但我得到了未捕获的SyntaxError:意外标记:在控制台中。我如何调试导致这种情况的原因?@AndyHarvey:错误应该告诉您是什么代码引发了错误。这可能是JSON中的一个错误,例如,它与上面的代码看起来不太一样。上面的代码和上面的JSON可以工作。这就是删除的方式,但是如何添加根密钥呢?谢谢TJ,你的回答很有道理,但是我在控制台中得到了未捕获的SyntaxError:Unexpected token:。我如何调试导致这种情况的原因?@AndyHarvey:错误应该告诉您是什么代码引发了错误。这可能是JSON中的一个错误,例如,它与上面的代码看起来不太一样。上面的代码和上面的JSON将起作用。这就是删除的方式,但如何添加根密钥?@Andy:Copy and paste是您的朋友。:-@安迪:复制粘贴是你的朋友-