Manipualte json与Js

时间:2015-12-30 11:31:37

标签: javascript json data-manipulation

我有一个json如下。您可以看到same here的树视图。

{

  "results": {
    "collection1": [
      {
        "property1": {
          "href": "http://www.somesite.com/neatobambino/2015/12/29/Little-Girl-Uses-Dogs-Tail-as-a-Paintbrush/",
          "text": "Little Girl Uses Dog's Tail as a Paintbrush"
        },
        "property5": {
          "alt": "",
          "src": "",
          "text": ""
        },
        "index": 1,
        "url": "http://www.somesite.com/"
      },                   

      {
        "property1": {
          "href": "http://www.somesite.com/2015/09/11/20-Alternative-Housing-Solutions-for-the-Homeless/",
          "text": "20 Alternative Housing Solutions for the Homeless"
        },
        "property5": [
          {
            "alt": "",
            "src": "http://www.somesite.com/page/data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",
            "text": ""
          },
          {
            "alt": "",
            "src": "http://www.somesite.com/page/data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",
            "text": ""
          }
        ],
        "index": 2500,
        "url": "http://www.somesite.com/page/84"
      }
    ]
  }
}

正如你所看到的那样结果是两级内部。在results内,我们再次collection1。整个json位于对象data内。如何将collection1中的整个数据直接移至results

有点像。

var data.results = data.results.collections;

你能做那样的事吗?

4 个答案:

答案 0 :(得分:2)

是的,应该有效,请查看fiddle

obj.results = obj.results.collection1;
console.log( obj );

答案 1 :(得分:0)

创建新对象并尝试分配

var newData = {
"results": data.results.collections;
}

答案 2 :(得分:0)

您所要做的就是一个新变量,您可以在其中存储所需的值,在这种情况下,您希望将值data.results.collection1存储在名为results的变量中,所以:

var results = data.results.collection1;

答案 3 :(得分:0)

如果您使用的是Jquery,则可以使用 var obj = $ .extend({},data.results.collection1)

$ .extend进行深度复制,因此obj将是独立对象。

如果您使用的是原生JS,请使用

var obj = Object.create(data.results.collection1) 要么 var copy = Object.assign({},data.results.collection1); //这是ES6特定的