我正在尝试解析以下名为result的字符串:
{
"status":0,
"id":"faxxxxx-1",
"hypotheses":[
{"utterance":"skateboard","confidence":0.90466744},
{"utterance":"skate board"},
{"utterance":"skateboarding"},
{"utterance":"skateboards"},
{"utterance":"skate bored"}
]
}
在Ruby 1.8中使用obj = JSON.parse(result)
和json gem。
有问题的命令是:
puts "#{obj['hypotheses'][0]}"
我的旧工作站(其硬盘死机)给了我:
{"utterance" => "skateboard", "confidence" => 0.90466744}
我当前的工作站给了我:
confidence0.90466744utteranceskateboard
我没有设置旧工作站,所以我不知道安装了哪种软件包,而目前的软件包是。
为什么完全相同的脚本的输出有差异? 如何使当前的看起来像旧的?
我对这个btw完全不熟悉。
答案 0 :(得分:3)
在Ruby 1.8中,Hash#to_s
只是将所有元素连接在一起而没有空格,相当于to_a.flatten.join('')
。
在Ruby 1.9中,Hash#to_s
是inspect
的别名,可以生成格式良好的输出。
在两种情况下获得相同的东西:
puts obj['hypotheses'][0].inspect
同样适用于Array。