我正试图公开一列,该列以JSON字符串形式保存在数据库中。 但是它显示为仅字符串。 任何帮助将不胜感激。
实体示例:
class Entity < Grape::Entity
expose :id
expose :name
expose :credentials # this is json string
end
实际反应:
[
{
"id": 1,
"name": "Foo",
"credentials": "[{\"name\":\"key\",\"label\":\"Key\"},{\"name\":\"key2\",\"label\":\"Key2\"}]"
}
]
预期的响应:
[
{
"id": 1,
"name": "Foo",
"credentials": [
{
"name": "key",
"label": "Key"
},
{
"name": "key2",
"label":"Key2"
}
]
}
]
答案 0 :(得分:1)
如果credentials
是包含JSON的字符串,为了让Grape将其呈现为JSON对象(而不是字符串),您必须反序列化:
class Entity < Grape::Entity
expose :id
expose :name
expose :credentials
def credentials
JSON.load object.credentials
end
end