a = "{key:'14',data:{order: '154'}}"
JSON.parse(a)
预期行为:
{key:'14',data:{order: '154'}}
结果:
SyntaxError: unexpected tIDENTIFIER, expecting end-of-input
答案 0 :(得分:5)
您的JSON无效。
你应该尝试:
a = '{"key":"14","data":{"order": "154"}}'
JSON.parse(a)
有效的JSON要求将属性和值括在双引号中。
答案 1 :(得分:0)
Json无效,Json密钥始终在引号中以使其有效。
答案 2 :(得分:0)
这不是JSON。您的哈希值存储为string
而不是JSON
。所以你需要 eval 来获得预期的输出:
> a = "{key:'14',data:{order: '154'}}"
> eval(a)
#=> {:key=>"14", :data=>{:order=>"154"}}
让我将您的哈希转换为json,并向您展示它的外观以及如何解析JSON。
# sample of your hash
> hash = {key:'14',data:{order: '154'}}
# convert hash to json and assign it to a
> a = hash.to_json
#=> "{\"key\":\"14\",\"data\":{\"order\":\"154\"}}"
# parse correct JSON format
> JSON.parse(a)
#=> {"key"=>"14", "data"=>{"order"=>"154"}}