如何编辑大量的json对象?

时间:2018-10-04 07:14:15

标签: json node.js

[
    [{
        "dimensions": {
            "source": "linkedin.com",
            "pagePath": "/",
            "date": 20170906
        },
        "metrics": {
            "visits": 1
        }
    }, {
        "dimensions": {
            "source": "linkedin.com",
            "pagePath": "/",
            "date": 20170921
        },
        "metrics": {
            "visits": 2
        }
    }, {
        "dimensions": {
            "source": "linkedin.com",
            "pagePath": "/",
            "date": 20170929
        },
        " metrics": {
            "visits": 1
        }
    }, {
        "dimensions": {
            "source": "linkedin.com",
            "pagePath": "/",
            "date": 20171004
        },
        "metrics": {
            "visits": 1
        }
    }, {
        "dimensions": {
            "source": "linkedin.com",
            "pagePath": "/",
            "date": 20171010
        },
        "metrics": {
            "visits": 1
        }
    }, {
        "dimensions": {
            "source": "linkedin.com",
            "pagePath": " /",
            "date": 20171018
        },
        "metrics": {
            "visits": 1
        }
    }, {
        "dimensions": {
            "source": "linkedin.com",
            "pagePath": "/",
            "date": 20171020
        },
        "metrics": {
            "visits": 1
        }
    }, {
        "dimensions": {
            "source": "linkedin.com",
            "pagePath": "/",
            "date": 20171030
        },
        "metrics": {
            "visits": 1
        }
    }, {
        "dimensions": {
            "source": "linke din.com",
            "pagePath": "/",
            "date": 20171112
        },
        "metrics": {
            "visits": 1
        }
    }, {
        "dimensions": {
            "source": "linkedin.com",
            "pagePath": "/",
            "date": 20171123
        },
        "metrics": {
            "visits": 1
        }
    }, {
        "dimensions": {
            "source": "linkedin.com",
            "pagePath": "/",
            "date": 20180106
        },
        "metrics": {
            "visits": 1
        }
    }, {
        "dimensi ons": {
            "source": "linkedin.com",
            "pagePath": "/",
            "date": 20180119
        },
        "metrics": {
            "visits": 1
        }
    }, {
        "dimensions": {
            "source": "linkedin.com",
            "pagePath": "/",
            "date": 20180120
        },
        "metrics": {
            "visits": 1
        }
    }, {
        "dimensions": {
            "source": "linkedin.com",
            "pagePath": "/",
            "date": 20180124
        },
        "metrics": {
            " visits": 1
        }
    }, {
        "dimensions": {
            "source": "linkedin.com",
            "pagePath": "/",
            "date": 20180126
        },
        "metrics": {
            "visits": 1
        }
    }, {
        "dimensions": {
            "source": "linkedin.com",
            "pagePath": "/",
            "date": 20180209
        },
        "metrics": {
            "visits": 1
        }
    }, {
        "dimensions": {
            "source": "linkedin.com",
            "pagePath": "/",
            "date": 20180212
        },
        "metrics": {
            "visits": 1
        }
    }, {
        "dimensions": {
            "source": "linkedin.com",
            "pagePath": "/",
            "date": 20180216
        },
        "metrics": {
            "visits": 1
        }
    }, {
        "dimensions": {
            "source": "linkedin.com",
            "pagePath": "/",
            "date": 20180217
        },
        "metrics": {
            "visits": 1
        }
    }, {
        "dimensions": {
            "source": "linkedin.com",
            "p agePath": "/",
            "date": 20180223
        },
        "metrics": {
            "visits": 1
        }
    }, {
        "dimensions": {
            "source": "linkedin.com",
            "pagePath": "/",
            "date": 20180308
        },
        "metrics": {
            "visits": 1
        }
    }, {
        "dimensions": {
            "source": "lnkd.in",
            "pagePath": "/",
            "date": 20171007
        },
        "metrics": {
            "visits": 1
        }
    }, {
        "dimensions": {
            "source": " lnkd.in",
            "pagePath": "/",
            "date": 20171120
        },
        "metrics": {
            "visits": 1
        }
    }]
]

我从多个来源和页面中得到了超过一万行的json,就像您在上面的示例中所看到的那样。

我想要的结果是这样的:

{
    "dimensions": {
        "source": "linkedin.com",
        "pagePath": "/"
    },
    "metrics": [{
        "visits": 1,
        "date": 20171205
    }, {
        "visits": 10,
        "date": 20171205
    }, {
        "visits": 8,
        "date": 20171205
    }, {
        "visits": 6,
        "date": 20171205
    }, {
        "visits": 5,
        "date": 20171205
    }, {
        "visits": 3,
        "date": 20171205
    }]
}

实现此目标的最佳方法是什么?我看了很多例子,但不知何故我还是不明白。我的问题是,当我使用JSON.Parse()之类的东西来转换1个对象时。我获得了1个指标(访问次数+日期)的数组的多个对象,而不是1个对象的1个指标(访问次数+日期)的数组。

2 个答案:

答案 0 :(得分:2)

  

您可以使用Array.filter方法

 var result =  jsonObject.filter(item => {
   return item.dimensions.source == 'linkedin.com' //any condtion you can give
 })

答案 1 :(得分:1)

就像另一个建议的海报(我对答案做了些微调整),您可以尝试使用Array.filter

var filtered_result = jsonObj.filter(function (item, index) {
  return item[index].dimensions.source == 'linkedin.com'
});

希望这会有所帮助!