对于 Tabulator.js 结构数据,是否有将字符串转换为数组的函数?
Is there a function to convert a string to array for Tabulator.js structure data?
我创建了一个 Google 应用程序脚本,它从 sheet 为 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% 可信 可能会非常非常危险,因为这只是动态代码 injection/evaluation。
// 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);
手动解析整个字符串并从中创建 array/object:String to object in JS
将脚本配置为 return 一个实际的 JSON 而不是字符串
PS:出于安全原因,该代码段不会再次 运行,但您可以尝试将其放入控制台
我创建了一个 Google 应用程序脚本,它从 sheet 为 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% 可信 可能会非常非常危险,因为这只是动态代码 injection/evaluation。
// 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);
手动解析整个字符串并从中创建 array/object:String to object in JS
将脚本配置为 return 一个实际的 JSON 而不是字符串
PS:出于安全原因,该代码段不会再次 运行,但您可以尝试将其放入控制台