Rails中如何从JSON格式page.body获取error字段值?
Rails中提取JSON字符串内的error字段值方法
你遇到的问题根源是page.body本质是JSON格式的字符串,而非Ruby哈希对象,所以直接用[:error]调用会触发类型转换错误。include? "error"能返回true,只是因为它在字符串里找到了"error"子串,和哈希键检测不是一回事。
解决方法很简单,先把JSON字符串解析为Ruby哈希,再提取字段:
解析JSON字符串
Rails默认已集成json库,直接用JSON.parse()方法转换:parsed_body = JSON.parse(page.body)提取error字段值
解析后的对象是标准Ruby哈希,用符号键或字符串键都能获取值:error_message = parsed_body[:error] # 或者 error_message = parsed_body["error"]
完整示例:
page.body = "{\"error\":\"Sorry, that is an invalid URL\"}" parsed_body = JSON.parse(page.body) puts parsed_body[:error] # 输出结果: Sorry, that is an invalid URL
内容的提问来源于stack exchange,提问作者Kumar Nikhil
相关产品推荐
相关产品推荐

