首页 > 解决方案 > 是否有将字符串转换为 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?

标签: javascriptjsontabulator

解决方案


实现这一目标的多种方法

  1. 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);

  1. 手动解析整个字符串并从中创建数组/对象:String to object in JS

  2. 配置脚本以返回实际的 JSON 而不是字符串

PS:由于安全原因,该代码段不会再次在此处运行,但您可以尝试将其放在控制台中


推荐阅读