如何解决是否有将字符串转换为 Tabulator.js 结构数据的数组的函数? 实现这一目标的多种方法
我创建了一个 Google 应用程序脚本,该脚本从工作表为 Tabulator.js 生成数据。作为字符串。当我复制文本并将其放入我的 html 文件时,它可以工作,但我通过 Google Appliacation Script 调用加载它,并且我分配给 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,_children:
[{id:2,cena:31,mn:1,cena_1:"",package:159,kredityMesicne:4,kredityBalik:14},package:85,kredityBalik:8},]},cena:23,package:83,kredityMesicne:3,cena:21,package:60,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+ ",package:85,kredityBalik:8},]},{id:11,name:"Xtend x2 Kit",cena:23,package:83,kredityMesicne:3,{id:18,name:"Viva+ Kit",cena:21,package:60,kredityBalik:4}]';
eval(asTextOriginal);
-
手动解析整个字符串并从中创建数组/对象:String to object in JS
-
配置脚本以返回实际的 JSON 而不是字符串
PS:出于安全原因,该代码段不会在此处再次运行,但您可以尝试将其放入控制台
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。