javascript - ruby 的 JSON 解析器错误

标签 javascript ruby json

我在页面的脚本标记内有 JSON 数据。我尝试使用 Nokogiri 进行如下操作:

json = doc.to_s[/var triforceManifestFeed = (.*)\r/, 1]

json包含以下格式的json数据:

"{\"manifest\":{\"css\":null,\"pageClass\":\"ent_p038_spike\",\"id\":\"56d116b5-e309-44ba-b5db-4e3ec78eadbc\",\"CMSTitle\":\"ENT_P038_SPIKE - Series Episode Guide\",\"parameters\":[],\"reporting\":{\"parentId\":\"5597d8e0-5eba-4eed-a9ea-a79f2d02002f\"},\"title\":\"Cops - Episode Guide | SPIKE.com\",\"type\":\"ENT_P038\",\"zones\":{\"t1_lc_promo1\":{\"feed\":\"http:\\/\\/www.spike.com\\/feeds\\/ent_m113_spike\\/2.0\\/1444d771-4d00-4a3e-973e-41a9847c69f2\\/5597d8e0-5eba-4eed-a9ea-a79f2d02002f\",\"feedData\":null,\"libraries\":[],\"version\":\"V3\",\"moduleName\":\"ENT_M113_Spike\",\"method\":\"triforce_v1\",\"priority\":0,\"driver\":\"ent_m113_spike_v2\",\"scriptHash\":\"ab1408769329d49\",\"zone\":\"t1_lc_promo1\"},\"t4_lc_promo1\":{\"feed\":\"http:\\/\\/www.spike.com\\/feeds\\/ent_m112_spike\\/2.0.1\\/62a1e116-2b7d-4160-ac2e-505f57572f0d\\/5597d8e0-5eba-4eed-a9ea-a79f2d02002f\",\"feedData\":null,\"libraries\":[],\"version\":\"V3\",\"moduleName\":\"ENT_M112_Spike\",\"method\":\"triforce_v1\",\"priority\":\"200\",\"driver\":\"ent_m112_spike_v2_0_1\",\"scriptHash\":\"8d876061f481e59\",\"zone\":\"t4_lc_promo1\"},\"ads-reporting\":{\"feed\":\"http:\\/\\/www.spike.com\\/modules\\/reporting\\/13ba010f-8f4e-4038-b8f8-b585175e92ca\",\"feedData\":null,\"libraries\":[],\"version\":\"V3\",\"moduleName\":\"ENT_SPIKE_Reporting\",\"method\":\"triforce_v1\",\"priority\":\"50\",\"driver\":\"reporting_v1\",\"scriptHash\":\"0b05d1e51beb47c\",\"zone\":\"ads-reporting\"},\"header\":{\"feed\":\"http:\\/\\/www.spike.com\\/modules\\/ent_m070_spike\\/4.2.0\\/57958c1a-ce7d-44a7-b17f-6d2b500b8275\\/5597d8e0-5eba-4eed-a9ea-a79f2d02002f\",\"feedData\":null,\"libraries\":[],\"version\":\"V3\",\"moduleName\":\"ENT_M070_Spike\",\"method\":\"dummy\",\"priority\":\"-100\",\"driver\":\"ent_m070_spike_v4_2_0\",\"scriptHash\":\"624c46a0e9ee2be\",\"zone\":\"header\"},\"footer\":{\"feed\":\"http:\\/\\/www.spike.com\\/modules\\/ent_m006_spike\\/1.0\\/78f6d8e3-6937-4f46-982c-9b900ba80709\",\"feedData\":null,\"libraries\":[],\"version\":\"V3\",\"moduleName\":\"ENT_M006_Spike\",\"method\":\"triforce_v1\",\"priority\":\"-100\",\"driver\":\"ent_m006_spike_v2\",\"scriptHash\":\"5c3648877102c5d\",\"zone\":\"footer\"}},\"showCSS\":null,\"supplemental\":{\"colors\":{\"contentType\":\"ColorScheme\",\"_arcv2FeedCheckPassed\":true,\"_arcv2ContentType\":\"Entertainment:ColorScheme\",\"shortId\":\"qditxa\",\"urlKey\":\"f9dfcbc0-1e66-4a60-92ea-8285c120bb0c\",\"namespace\":\"spike-site\",\"itemId\":\"f9dfcbc0-1e66-4a60-92ea-8285c120bb0c\",\"title\":\"Teal\",\"colors\":{\"primary\":\"#57B993\",\"secondary\":\"#D1D3D1\"},\"dependenciesForMakingBuilder\":null,\"_missingItems\":null,\"builderChainSuccessful\":true,\"depth\":0}}}};"

当我尝试解析 (JSON.parse(json)) 时,它显示 json 解析器错误为

JSON::ParserError: 757: unexpected token at ';'

我认为这是因为 json 数据中的斜杠。我是否需要删除json数据中的所有斜杠然后解析它,或者如何有效地解析它?

最佳答案

分号可能是 JavaScript 的一部分,不应该被解析为 JSON 的一部分。改为这样做:

json = doc.to_s[/var triforceManifestFeed = (.*);\r/, 1]

关于javascript - ruby 的 JSON 解析器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29427528/

相关文章:

javascript - Java Applet 未定义

ruby-on-rails - 尝试在 mac os x El Capitan 上安装 Rails

ruby-on-rails - Textmate Rails3 没有这样的文件要加载 — bundler

json - 如何在 Swift 的 Alamofire 中发送 body 参数?

javascript - 使用 JSON 数据的 HTML TreeMap

javascript - 使用 JavaScript 确定事件何时停止

javascript - 处理 tr 的子元素不起作用

javascript - JSON 次要数据移除器

ruby-on-rails - DelayedJob 有时无法加载具有命名空间的作业类

javascript - 如何找到json文件中最小的数字