如何最好地将javascript解析的JSON内容解析为ruby
How to best parse a javascript parsed JSON content into ruby
我有一个javascript文件,我使用我的javascript应用程序,我想在阅读和解析与ruby。这个文件的内容不是一个字符串化的JSON,而是一个javascript解析的JSON数据结构。
即如果我的ruby代码是
require 'rubygems'
require 'json'
file = File.open("testing.js", 'r')
json = file.readlines.to_s
hash = JSON.parse(json)
my testing.js is
{
color:"blue"
}
如果我尝试在…中读取它将失败
JSON::ParserError: 751: unexpected token at '{ color:"blue" }'
如果我将test .js更改为字符串化的json内容
{
"color":"blue"
}
那么我怎样才能使ruby脚本处理上面的第一种格式(不是字符串化),这样我就可以把文件留在当前的格式?
…澄清一下
文件的实际格式是
var setting = {
color: "blue"
}
,我只是提取'='符号的右侧,以使用
进行解析require 'rubygems'
require 'json'
file = File.open("testing.js", 'r')
content = file.readlines.to_s
json = content.split("= ",2)[1]
hash = JSON.parse(json)
,但得到错误如上所述,因为它是JSON结构的问题
据我所知,json gem不允许这样的选项。问题是,您的文件可能是有效的JS,但它不是有效的JSON,因此JSON库倾向于拒绝它。您有两个简单的选择:
a)修复的东西,所以它是有效的JSON。您可以手动执行,或者,如果您的值不包含冒号,则使用regexp: json.gsub!(/([a-zA-Z]+):/, '"'1":')
b)如果使用Ruby 1.9,它不仅是有效的JS,也是有效的Ruby,所以你可以eval
。注意这里的安全问题。
相关文章:
- jQuery匹配JSON对象的部分文本
- Ruby on Rails 在 js.erb 中渲染 json
- 在javascript中编辑多级json,类似Ruby的翻译可以读取它们(从array/string)
- 使用ruby在js文件中使用来自localhost的json数据
- 将JS JSON解析为Ruby
- 如何最好地将javascript解析的JSON内容解析为ruby
- Ruby on Rails, json vs js ajax response
- 为什么在视图中解析时,我的嵌入式ruby json字符串用html实体编码
- 使用AJAX从Ruby on Rails服务器获取JSON内容
- 当发布字符串化数组时,格式错误的JSON (Javascript和Ruby)
- Ruby on rails -如何通过javascript传递解析json值
- rails上的ruby-json上的.map方法,使用Javascript中的parent和wthout
- Ruby on rails - 将有效的 json 发送到 html erb 模板中的 JavaScript
- 在ruby和js中从json中提取字符串
- 如何在ruby on rails和Javascript中为现有的JSON对象添加另一个值
- 动态构建JSON变量从HTML5移动发送到Ruby on Rails控制器
- 从Javascript对象到Ruby的JSON
- Javascript或Ruby.重新格式化JSON对象
- 在ruby应用中设置事件模型的js json文件
- Ruby:接收和打印JSON对象