ruby JSON.parse ParseError意外令牌

时间:2019-08-22 08:49:19

标签: json ruby

我试图在Ubuntu 16.04上运行一些使用ruby的代码(版本2.1.4,这个版本很旧吗?)。

解析一个简单的JSON字符串似乎很麻烦,也许我的安装有问题:

require 'rubygems'
require 'json'

string='{foo:{"bar":"foobar"}}'
parsed = JSON.parse(string)
p parsed["foo"]["bar"]

我收到此错误:

/home/avilella/.rvm/rubies/ruby-2.1.4/lib/ruby/2.1.0/json/common.rb:155:in `parse': 757: unexpected token at '{foo:{"bar":"foobar"}}' (JSON::ParserError)
    from /home/avilella/.rvm/rubies/ruby-2.1.4/lib/ruby/2.1.0/json/common.rb:155:in `parse'
    from example_json.rb:5:in `<main>'

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

foo放在引号中

JSON.parse('{"foo":{"bar":"foobar"}}')
# => {"foo"=>{"bar"=>"foobar"}}

答案 1 :(得分:1)

  

解析一个简单的JSON字符串似乎很麻烦,也许我的安装有问题:

您的安装没有问题。您的“简单JSON字符串”根本不是JSON字符串。

JSON解析器无法解析您的字符串,因为您的字符串不是有效的JSON。换句话说:解析器在拒绝字符串时是完全正确的。

相关问题