【问题标题】:How do I convert a JSON string into and an array of unknown objects?如何将 JSON 字符串转换为未知对象数组?
【发布时间】:2017-09-04 02:54:44
【问题描述】:

我正在创建一个简单的抽认卡生成器,并有一个 JSON 字符串,其中包含多个数组和对象,如下所示:

data = [{"front":"What is your name?","back":"Billy"},{"front":"How old are you?","back":"40"}][{"front":"Is this a test?","back":"yes"}]

当我console.log(data.length) 我得到 130。

我一次可以输入多个抽认卡,并且可以在任何给定时间输入抽认卡。这就是为什么][ 在它的中间。

我正在尝试遍历所述数组并最终得到以下内容:

data = [{"front":"What is your name?","back":"Billy"},{"front":"How old are you?","back":"40"},{"front":"Is this a test?","back":"yes"}]

在哪里console.log(data.length) = 3

最终data[i].front = "What is your name?"

有人可以帮我指明正确的方向吗?如果有影响,则从 txt 文件中读取数据。

【问题讨论】:

  • 那不是有效的 json。您将一个数组附加到另​​一个数组的外部,没有封闭结构。
  • 您的data 不是有效数组。
  • var data = JSON.parse(aValidJsonString);
  • @Thomas JSON.parse() 会因该输入而呕吐。 @trincot,数据是一个字符串,显然......基于data.length
  • 另外,json 没有像 data = 这样的赋值。看起来您所拥有的可能正在尝试使用 mabey 一个 arary 进行 javascript 分配。但如上所述,它不是一个有效的数组。

标签: javascript arrays json node.js string


【解决方案1】:

好的,如果您没有控制“json”创建,并且无法获得有效的 JSON,那么请尝试修复它。

const fixedData = data.replace('][', ',');
const parsedData = JSON.parse(fixedData);
console.log(parsedData.length); // 3

如果您可以控制输入,只需构造有效的 JSON。如果不知道怎么做,请提出不同的问题。

【讨论】:

    猜你喜欢
    • 2021-05-12
    • 1970-01-01
    • 2013-08-29
    • 2016-03-23
    • 2016-10-09
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 2013-07-14
    相关资源
    最近更新 更多