javascript - 是否有将字符串转换为 Tabulator.js 结构数据的数组的函数?
问题描述
我创建了一个 Google 应用程序脚本,它从工作表为 Tabulator.js 生成数据。作为一个字符串。当我复制文本并将其放入我的 html 文件中时,它可以工作,但我通过 Google 应用程序脚本调用加载它,并且我分配给 Tabulator 数据变量的此类字符串出现错误Data Loading Error - Unable to process data due to invalid data type Expecting: array , Received: string
是否有任何简单的方法可以将此类字符串转换为所需的 JSON 结构数组?注意children
第一行的。您可以在jsFiddle中使用它
我试过用JSON.parse
但是好像字符串结构不好SyntaxError: JSON.parse: expected property name or '}' at line 1 column 2 of the JSON data"
[
{id:1, name:"BalanceOil", _children:
[
{id:2, name:"BalanceOil+ s testy", cena:31},
{id:3, name:"BalanceOil+ ", cena:31}
]
},
{id:11, name:"Xtend x2 Kit", cena:23},
{id:18, name:"Viva+ Kit", cena:21}
]
原始数据如下所示,但我对其进行了简化。
[{id:1, name:"BalanceOil", _children:
[{id:2, name:"BalanceOil+ s testy", cena:31, mn:1,cena_1:"", package:159, kredityMesicne:4, kredityBalik:14},
{id:3, name:"BalanceOil+ ", cena:31, mn:1,cena_1:"", package:85, kredityMesicne:4, kredityBalik:8},]},
{id:11, name:"Xtend x2 Kit", cena:23, mn:1,cena_1:"", package:83, kredityMesicne:3, kredityBalik:8},
{id:18, name:"Viva+ Kit", cena:21, mn:1,cena_1:"", package:60, kredityMesicne:3, kredityBalik:4}
]
是否可以将数据源用作字符串,或者我必须更改代码以将结构创建为所需的对象?实际上会是什么?数组还是 JSON?
解决方案
实现这一目标的多种方法
eval
尽管如果在其中传递的内容不是100% 可信赖的,因为这只是动态代码注入/评估,可能会非常非常危险。
// from your jsfiddle
var asTextOriginal ='[{id:1, name:"BalanceOil", _children:[{id:2, name:"BalanceOil+ s testy", cena:31, mn:1,cena_1:"", package:159, kredityMesicne:4, kredityBalik:14},{id:3, name:"BalanceOil+ ", cena:31, mn:1,cena_1:"", package:85, kredityMesicne:4, kredityBalik:8},]},{id:11, name:"Xtend x2 Kit", cena:23, mn:1,cena_1:"", package:83, kredityMesicne:3, kredityBalik:8},{id:18, name:"Viva+ Kit", cena:21, mn:1,cena_1:"", package:60, kredityMesicne:3, kredityBalik:4}]';
eval(asTextOriginal);
手动解析整个字符串并从中创建数组/对象:String to object in JS
配置脚本以返回实际的 JSON 而不是字符串
PS:由于安全原因,该代码段不会再次在此处运行,但您可以尝试将其放在控制台中
推荐阅读
- reactjs - 如何仅在我的 PC 中本地部署 React 应用程序?
- reactjs - Webpack 配置 - DLL 的优化
- python - Python Regex 查找混入随机空格的单词
- java - Gradle 可以在没有 main() 的情况下执行 TornadoFX 应用程序,而 IntelliJ 不能......为什么?
- javascript - 如何在没有“... 19 more ...”截断的情况下使用 vs-code 提取大型类型?
- c++ - 如何在windows中运行编译好的项目
- sql - 如何批量更新所有表的序列 ID postgreSQL
- swift - 尝试从 FTPS 下载文件时 SSL 握手失败
- hadoop - hdfs 中文件或文件夹的权限列表后面的加号 (+) 是什么?
- c# - 将输入字段中的安全字符串与c#中的数据库进行比较