繁体   English   中英

是否有 function 将字符串转换为 Tabulator.js 结构数据的数组?

[英]Is there a function to convert a string to array for Tabulator.js structure data?

我创建了一个 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}
]

是否可以将数据源用作字符串,或者我必须更改代码并将结构创建为所需的 object? 实际上会是什么? 一个数组还是 JSON?

实现这一目标的多种方法

  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:由于安全原因,该代码段不会再次在此处运行,但您可以尝试将其放在控制台中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM