Javascript JSON解析不适用于html脚本元素
我试图将HTML元素中的脚本内容转换为JSON。但问题是并非所有键都有引号。以下是脚本:Javascript JSON解析不适用于html脚本元素,javascript,html,json,parsing,Javascript,Html,Json,Parsing,我试图将HTML元素中的脚本内容转换为JSON。但问题是并非所有键都有引号。以下是脚本: { route: "PDFilter", websiteId: "52", lang: "us", layout: { PDPage: { Banner: 1, Spotlight: 1, HotProduct: 1, ContentSource: 0, SocialMedia: 0, ScenarioFilte
{
route: "PDFilter",
websiteId: "52",
lang: "us",
layout: {
PDPage: {
Banner: 1,
Spotlight: 1,
HotProduct: 1,
ContentSource: 0,
SocialMedia: 0,
ScenarioFilter: 1,
CategoryHotProduct: 1,
CategoryHotProduct_9: 0
},
PDPageSort: [
"Banner",
"Spotlight",
"ScenarioFilter",
"HotProduct",
"CategoryHotProduct"
]
},
product: {
l2id: "1",
l3id: "20501",
pdid: "0",
layoutType: "2",
theme: 1,
IsCommercial: 0,
bannerIsRoller: 0
},
productLine: {
MDA: {
Html: "",
Image: ""
},
blackVersion: 0,
rogVersion: 0
},
env: "prod",
breadcrumb: {
Home: {
LevelName: "Home",
Link: "//www.asus.com/us/"
},
L2: {
LevelName: "Phones",
Link: "//www.asus.com/us/Phone/"
},
L3: {
LevelName: "ZenFone",
Link: "//www.asus.com/us/Phone/ZenFone-Products/"
}
}
}
解析表示需要一个字符串,但该脚本具有正确的JSON格式。您使用的是
JSON.parse
,而您应该使用JSON.stringify
JSON.parse
用于将JSON字符串转换为JavaScript对象,而JSON.stringify
用于将JavaScript对象转换为JSON字符串。看起来像JS对象,而不是JSON字符串。不需要解析一个对象,它已经是一个对象了。如果它是有效的JSON,它将在所有名称周围加上引号:“我正在尝试将HTML元素中脚本的内容转换为JSON。”。这让我觉得OP正在尝试将该对象转换为JSON字符串。但是他们接着说“解析说它需要一个字符串,但该脚本具有正确的JSON格式”。也许OP已经混淆了和。正如@wing所正确指出的,OP似乎想要将其对象转换为JSON字符串。如果是这样的话,那么这个问题很可能是另一个问题的翻版。当我使用JS获取它并去掉window.config=characters时,它看起来就像您看到的代码。因为我使用JS获得它,它是一个字符串,所以我不需要对它进行字符串化。一旦我有了正确的对象表示法,我希望能够访问它的属性,例如code.route,但它是无效的,因为它是字符串而不是对象。我需要将其转换为一个对象,但使用JSON解析方法是不可能的