javascript - 如何将 JSON 文件转换为使用 Google Apps 脚本分隔的新行?
问题描述
我有一个独立的 Google Script 项目,可以从 fetch URL 生成嵌套的 JSON。iAmOren
的原始代码。
function unFlat(fj) {
let date = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd");
var arr=[];
var objL1, objL2, objL3;
var prev_level;
for(var i=0; i<fj.length;i++) {
var obj=fj[i];
switch(Number(obj.level)) {
case 3:
objL3={};
objL3.name=obj.name;
objL3.leads=obj.leads;
objL3.cost=obj.cost;
objL3.revenue=obj.revenue;
objL2.place.push(objL3);
prev_level=3;
break;
case 2:
objL2={};
objL2.path=obj.path;
objL2.name_postfix=obj.name_postfix;
objL2.path_com=obj.path_com;
objL2.name=obj.name;
objL2.place=[];
objL1.partner.push(objL2);
prev_level=2;
break;
case 1:
if(prev_level==3) arr.push(objL1);
objL1={};
objL1.report_date=date;
objL1.name=obj.name;
objL1.partner=[];
prev_level=1;
break;
}
}
if(fj.length) arr.push(objL1);
//Save JSON file on my Drive
let fileSets = {
title: 'JSON_Test.json',
mimeType: 'application/json'
};
let blob = Utilities.newBlob(JSON.stringify(arr), "application/vnd.google-apps.script+json");
Drive.Files.insert(fileSets, blob);
}
它有效,文件出现在我的 Google 驱动器中。然后我想将它用作 BigQuery 的数据集,但它不起作用。当我尝试将此文件上传到 BigQuery 时,它会返回错误:Failed to create table: Error while reading table: my_json, error message: Failed to parse JSON: No object found when new array is started.; BeginArray returned false; Parser terminated before end of string
. 我认为这是因为我的 JSON 文件不是新行分隔的。任何我错的地方以及如何解决它?
解决方案
刚刚自己找到解决方案
//Save JSON file on my Drive
let fileSets = {
title: 'JSON_Test.json',
mimeType: 'application/json'
};
let blob = Utilities.newBlob(JSON.stringify(arr[0]), "application/vnd.google-apps.script+json"); //modified
Drive.Files.insert(fileSets, blob);
推荐阅读
- vue.js - 资产文件夹中的图像未使用 Vue Js 显示
- wordpress - 保护WordPress中“上传”文件夹中文件的策略
- sharepoint - 如何在画面中处理多个问题的答案
- kotlin - 在 Kotlin 中为 BLE 实现有限状态机
- arrays - 如何比较集合中的嵌套数组和纯数组?
- python - 我正在尝试在 pycharm 中使用 selenium 来打开 Firefox。我不知道问题是什么
- kubernetes - 限制 kubernetes chron 作业中一次启动的容器数量
- android - Android Wifi DPP(Wi-Fi 轻松连接)
- apache-spark - Kubernetes 中的 Statefulset Spark Master HA 如果运行 master pod 的 Kubernetes 节点本身出现故障
- python - 我正在尝试在 heroku 上托管 discord.py 机器人并且发生此错误