Ruby : TypeError: can't convert String into Integer
Ruby : TypeError: can't convert String into Integer
我有 JSON 回复。
result = {
"owner":{
"uid":"bb4123ac7950435eb516e2a47940b675",
"firstName":"Tester",
"lastName":"Test5577"
}
}
我正在尝试提取 "uid" 但出现以下错误。
Ruby:类型错误:无法将字符串转换为整数
我的代码是:
@jdoc =JSON.parse(result)
@uid = @jdoc.fetch("owner").first.fetch("uid").to_i() #Getting error here.
非常感谢您的支持。
您可以通过以下方式访问uid:
@jdoc = JSON.parse(result)
@uid = @json['owner']['uid']
@uid = Integer(@uid) rescue 0
你能在JSON.parse(result)
之后打印出@jdoc
里面的内容吗
uid 之间包含字符串,因此您将收到 0 作为整数输出
"bb4123ac7950435eb516e2a47940b675".to_i => # 0
"111".to_i => # 111
代码中的一个小改动应该会得到正确的数据:
@jdoc = JSON.parse(result)
@uid = @json['owner']['uid'] #=> "bb4123ac7950435eb516e2a47940b675"
此外,您正在尝试在代码中将字符串:"bb4123ac7950435eb516e2a47940b675" 转换为整数:to_i()
。这将是 0,因为 uid 是一串字母数字字符,而不是一些随机 numbers/integers 的组合。我建议您将该信息保存在 varchar 列中。
你可以试试这个。希望对您有所帮助。
@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"
我有 JSON 回复。
result = {
"owner":{
"uid":"bb4123ac7950435eb516e2a47940b675",
"firstName":"Tester",
"lastName":"Test5577"
}
}
我正在尝试提取 "uid" 但出现以下错误。
Ruby:类型错误:无法将字符串转换为整数
我的代码是:
@jdoc =JSON.parse(result)
@uid = @jdoc.fetch("owner").first.fetch("uid").to_i() #Getting error here.
非常感谢您的支持。
您可以通过以下方式访问uid:
@jdoc = JSON.parse(result)
@uid = @json['owner']['uid']
@uid = Integer(@uid) rescue 0
你能在JSON.parse(result)
@jdoc
里面的内容吗
uid 之间包含字符串,因此您将收到 0 作为整数输出
"bb4123ac7950435eb516e2a47940b675".to_i => # 0
"111".to_i => # 111
代码中的一个小改动应该会得到正确的数据:
@jdoc = JSON.parse(result)
@uid = @json['owner']['uid'] #=> "bb4123ac7950435eb516e2a47940b675"
此外,您正在尝试在代码中将字符串:"bb4123ac7950435eb516e2a47940b675" 转换为整数:to_i()
。这将是 0,因为 uid 是一串字母数字字符,而不是一些随机 numbers/integers 的组合。我建议您将该信息保存在 varchar 列中。
你可以试试这个。希望对您有所帮助。
@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"