我有JSON回复。
result = {
"owner":{
"uid":"bb4123ac7950435eb516e2a47940b675",
"firstName":"Tester",
"lastName":"Test5577"
}
}
我正在尝试提取“uid”,但收到以下错误。
Ruby:TypeError:无法将String转换为Integer
我的代码是:
@jdoc =JSON.parse(result)
@uid = @jdoc.fetch("owner").first.fetch("uid").to_i() #Getting error here.
非常感谢您的支持。
答案 0 :(得分:1)
代码中的细微更改应该能够获得正确的数据:
@jdoc = JSON.parse(result)
@uid = @json['owner']['uid'] #=> "bb4123ac7950435eb516e2a47940b675"
此外,您正在尝试将字符串:“bb4123ac7950435eb516e2a47940b675”转换为代码中的整数:to_i()
。其中0为uid,因为uid是一串字母数字字符,而不是一些随机数/整数的组合。我建议您将该信息保存在varchar列中。
答案 1 :(得分:0)
您可以按如下方式访问uid:
@jdoc = JSON.parse(result)
@uid = @json['owner']['uid']
@uid = Integer(@uid) rescue 0
答案 2 :(得分:0)
是否可以在@jdoc
JSON.parse(result)
内的内容
btw uid包含字符串,因此您将收到0作为带整数的输出
"bb4123ac7950435eb516e2a47940b675".to_i => # 0
"111".to_i => # 111
答案 3 :(得分:0)
你可以试试这个。我希望这会对你有所帮助。
@uid = @jdoc.fetch("owner").first.fetch("uid").to_i()
## OUTPUT
# If you do it like this you will get follwing error
TypeError: can't convert String into Integer
但是,如果你做了以下,你就会得到渴望的结果。
@uid = @jdoc.fetch("owner").fetch("uid")
##OUTPUT
"bb4123ac7950435eb516e2a47940b675"