在Ruby中解析JSON报错TypeError: no implicit conversion of Array into String如何解决?
报错原因
JSON.parse方法仅接受字符串格式的JSON数据作为入参,你当前传入的参数j已经是Array(数组)类型,方法尝试自动把数组转成字符串失败,就抛出了这个TypeError报错。
你可以先执行p j.class验证参数类型,返回结果一定是Array而不是String。
解决方法
分两种场景处理:
- 如果你拿到的
j本身就是已经被解析完成的目标数组,直接删除JSON.parse这行代码,直接使用j变量即可。比如要取第一个元素的test字段值,直接写j[0]["test"]就能拿到test_a。 - 如果你确定
j应该是JSON字符串,那去排查上游数据获取的逻辑,找到原始未被解析的JSON字符串,再传给JSON.parse即可。
附正确使用示例:
# 只有字符串格式的JSON才能传入parse方法 raw_json = '[{"test": "test_a", "doc_type": { "id": 32 }}]' obj = JSON.parse(raw_json) # 解析后obj就是预期的数组结构
内容的提问来源于stack exchange,提问作者Dulguuntur Enkh Orgil
相关产品推荐
相关产品推荐

