简体   繁体   English

如何编辑大量的json对象?

[英]how to edit a large amount of json objects?

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

i get 10k+ lines of json like this, from multiple sources and pages as you can see in the made-up example above how it looks like.我从多个来源和页面中得到了 10k+ 行这样的 json,正如您在上面的虚构示例中看到的那样。

the result i would like to have is like this :我想要的结果是这样的:

{
    "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
    }]
}

what is the best way to achieve this ?实现这一目标的最佳方法是什么? i looked at a lot of examples but somehow i still dont get it.我看了很多例子,但不知何故我仍然不明白。 my problem is that when i use something like JSON.Parse() to convert 1 object.我的问题是,当我使用 JSON.Parse() 之类的东西来转换 1 个对象时。 i get multiple objects with 1 array of 1 metric(visit+date) instead of 1 object with 1 array of multiple metrics(visit+date)我得到具有 1 个 1 个指标数组(访问 + 日期)的多个对象,而不是具有 1 个多个指标数组(访问 + 日期)的 1 个对象

You can use Array.filter method您可以使用 Array.filter 方法

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

Like, the other poster suggested (I've tweaked the answer a little bit), You can try the Array.filter like this,就像,另一张海报建议(我稍微调整了答案),您可以像这样尝试Array.filter

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

Hope this helps!希望这可以帮助!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM