【问题标题】:how to edit a large amount of json objects?如何编辑大量的 json 对象?
【发布时间】:2018-10-04 15:38:57
【问题描述】:
[
    [{
        "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
        }
    }]
]

我从多个来源和页面中获得了 10k+ 行这样的 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 个具有 1 个多个指标数组(访问 + 日期)的对象

【问题讨论】:

    标签: json node.js


    【解决方案1】:

    你可以使用 Array.filter 方法

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

    【讨论】:

      【解决方案2】:

      就像,另一张海报建议的(我已经稍微调整了答案),你可以试试Array.filter 这样,

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

      希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 2015-03-08
        • 2020-09-12
        • 1970-01-01
        • 2021-10-26
        • 1970-01-01
        • 2021-03-05
        • 1970-01-01
        • 1970-01-01
        • 2019-03-27
        相关资源
        最近更新 更多