Rails 将接口数据解析到界面时报错

GSTA_Yalo · 2018年06月26日 · 最后由 GSTA_Yalo 回复于 2018年07月02日 · 648 次阅读

请教一下各位高手,现在有一串接口数据 ,我想将这些数据解析到界面:

后台:

前端:

报错:

是split没使用对还是其他原因,求指教!

共收到 10 条回复

看一下你resp.body.split(",")拿到的是什么类型的数据,应该不是ActiveRecord::Relation

easonlovewan 回复

数据就是接口吐上来的,上面已经贴出来,应该是string。

GSTA_Yalo 回复

我说的意思是你把@subscribe.class 一下截个图我看看是什么类型如果是String的话,你试试下面的方案 ->
首先:你需要JSON.parse一下得到一个new_hash
然后:new_hash[:subscribs]得到一个数组,遍历取出来就行了
最后:你得到的不是一个ActiveRecord::Relation对象不能那么取值

4楼 已删除

那你根据key去除每个value值就行了

easonlovewan 回复

你说的方案是这样吗? new_hash = JSON.parse(resp.body) @subscribe = new_hash[:subscribes]

上面的是一种思路,我再给你提一种:

# 后台
@subscribe = JSON.parse(resp.body, object_class: OpenStruct).subscribes

前台什么都不用改,你试试。

原理就是按照你前台访问的形式你其实希望得到的是一个类似 OpenStruct 的对象,在后台构建出这种对象就行了。

pinewong 回复

这个接口里面的json值都是加了“\”的,解析前需要先将这些反斜杠去除吗?

GSTA_Yalo 回复

不用。反斜杠是 Ruby 表示字符串时自己加上去的,不是 json 里的

pinewong 回复

按照你的方法,系统会报错: 按照trap_subscribe = JSON.parse(resp.body) @subscribe = trap_subscribe[:subscribes] 这种方法,会提示: 😂

easonlovewan 回复

用这种方法,new_hash[:subscribs]是空类。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册