如何将大型JSON对象拆分为较小的对象 - NODEJS

时间:2017-05-10 05:46:11

标签: json facebook-graph-api facebook-javascript-sdk

将离线转化数据上传到Facebook的API时,每个API调用限制为2,000个事件。

为了上传超过2000个事件的JSON对象,需要将它们分成较小的对象并一次POST一个。

如何实现这一目标?

感谢。

2 个答案:

答案 0 :(得分:0)

根据docs,您可以通过构建JSON对象来描述您要执行的每个操作,从而发出批处理请求。您可以在一个批处理请求中执行多达50个操作,但每个操作都计为一次调用。例如。单个批处理请求中的50个操作计为50个针对您的配额的请求。

答案 1 :(得分:0)

谢谢你etemple1的答案。

我尝试在解决方案已经存在时找到解决方法的好例子。

对于任何想要分割json对象的人来说,这就是我使用的方法。

batchSize是每个结果json的大小(除了最后一个在到达数据末尾时切断。

    var batchSize = 1900;
    var total = jsonObj.length;

    for (var j = 0; j <= Math.floor(total/batchSize); j++) {
        var data = [];
        var batchStart = j*batchSize;

        for (var i = batchStart; i < batchStart+batchSize; i++) { 
            var obj = {};
            var index = i;

            obj.currency = jsonObj[index].someFieldFoo;
            data.push(obj);
            if (index + 1 >= jsonObj.length) {
                break;
            }
            // console.log(data);

        };
    };