Javascript JSON解析不适用于html脚本元素

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

我试图将HTML元素中的脚本内容转换为JSON。但问题是并非所有键都有引号。以下是脚本:

{
  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解析方法是不可能的