Javascript Can';不要以任何方式操纵JSON对象

Javascript Can';不要以任何方式操纵JSON对象,javascript,json,object,Javascript,Json,Object,我正在制作一个关于Cargocollective的网站,并使用Javascript(仅允许使用香草)定制部分内容。我发现Cargo使用JSON符号将整个网站存储在同一个HTML中,元素中 我想从这些JSON对象中提取信息,以便在脚本中使用。我能够使用QuerySelector选择JSON对象。这些对象看起来像JSON对象,typeof返回对象 但是,如果我尝试执行类似myObject.key或myObject[0].key的操作,则会得到“未定义”。如果我尝试JSON.parse,我会得到“位置

我正在制作一个关于Cargocollective的网站,并使用Javascript(仅允许使用香草)定制部分内容。我发现Cargo使用JSON符号将整个网站存储在同一个HTML中,
元素中

我想从这些JSON对象中提取信息,以便在脚本中使用。我能够使用QuerySelector选择JSON对象。这些对象看起来像JSON对象,typeof返回对象

但是,如果我尝试执行类似myObject.key或myObject[0].key的操作,则会得到“未定义”。如果我尝试JSON.parse,我会得到“位置1处JSON中的意外标记o”。stringify返回{}

这就是它在HTML中的样子:(很长,4000个字符,这只是一个摘录)


{id:0,“title”:“Sandra Javera”,“project\u url”:0,“set\u id”:0,“is\u homepage”:false,“is\u set”:true,“in\u nav”:false,{id:14844451,“site\u id”:711279,“project\u url”:“Lisboa copy”,“direct\u link”:“https:\/\/sandrajavera.com\/Lisboa copy”,“type”:“page”,“title”:“Lisboa copy”,“title”;“title\u no\u html”:“Lisboa copy”,“tags”:“display”;“true”,“pin”:false,“pin_options”:null,“in_nav”:false,“is_homepage”:false,“background_enabled”:false,“is_set”:false,“stack”:false,“摘录”:“+\n\t\n………}\”
将文本包装在
[]
中以使结构有效,然后对其进行分析

但是,在源代码处添加包装数组大括号会更好

const str=document.querySelector('script[数据集]).textContent.trim()
const data=JSON.parse(`[${str}]`)
console.log(数据)

{“id”:1,txt:“foo”},{“id”:2,txt:“bar”}

首先需要将字符串转换为json对象:
json.parse(字符串)
您可以共享用于选择JSON的查询选择器吗?您不应该以
JSON.parse(document.querySelector('script[data set=ScaffoldingData]').text)的身份访问吗?
“即使没有括号”。。。。那么它就不是有效的json。用
[]
包装它会使valid@defines我正在使用document.querySelectorAll(“[data set]”),然后找到具有索引的正确JSON。由于某种原因,Cargo HTML编辑器阻止了更具体的查询选择器。谢谢!真正让它在这里工作的是textContent.trim(),之后我可以解析它。我没有添加括号,而是在HTML中使用了另一个格式正确的JSON。