【问题标题】:"no implicit conversion of Array into String" when trying to parse JSON data尝试解析 JSON 数据时“没有将数组隐式转换为字符串”
【发布时间】:2016-09-29 15:48:44
【问题描述】:

我使用的是 Rails 4.2.3。我正在尝试解析 JSON 数据,所以我有

content = ["{\"sEcho\":3,\"timestamp\":1464705752942,\"iTotalRecords\":1242,\"iTotalDisplayRecords\":1242,\"aaData\":[{\"externalId\":\"4279\"}]}"]
my_object_times_array = JSON.parse(content)

遗憾的是,第二行给出了错误

no implicit conversion of Array into String

JSON 格式正确(至少据我所知),所以我不确定是什么导致了上述错误以及如何修复它。我宁愿不更改 JSON。

【问题讨论】:

  • 尝试:my_object_times_array = JSON.parse(content[0])
  • 嗯,codepen 是 Javascript,!不是 RUBY!你是用 JS 还是 RUBY 来解决问题?

标签: arrays json ruby-on-rails-4 type-conversion


【解决方案1】:

content 是一个数组,但 JSON.parse 需要一个 JSON 字符串。

文档中的使用示例:

require 'json'

my_hash = JSON.parse('{"hello": "goodbye"}')
puts my_hash["hello"] => "goodbye"

Check the documentation here

因此您可以执行以下操作

content = "{\"sEcho\":3,\"timestamp\":1464705752942,\"iTotalRecords\":1242,\"iTotalDisplayRecords\":1242,\"aaData\":[{\"externalId\":\"4279\"}]}"
my_object_times_array = JSON.parse(content)

content = ["{\"sEcho\":3,\"timestamp\":1464705752942,\"iTotalRecords\":1242,\"iTotalDisplayRecords\":1242,\"aaData\":[{\"externalId\":\"4279\"}]}"]
my_object_times_array = JSON.parse(content[0])

【讨论】:

    猜你喜欢
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    相关资源
    最近更新 更多