【问题标题】:How to format jbuilder value如何格式化jbuilder值
【发布时间】:2019-12-09 12:42:35
【问题描述】:

我收到了如下所示的 jbuilder 响应

{
  "name": "amb_devcernerpowerchart_com:patient_val2",
  "value": "{\"value\"=>\"patient_value\", \"expiration\"=>31536000, \"created_datetime\"=>\"2019-12-09T12:09:59Z\"}"
}

我只想评估价值的一部分,即我想要如下所示的输出。

{
  "name": "amb_devcernerpowerchart_com:patient_val2",
  "value": "value"=>"patient_value"
}

我怎么得到这个?

Jbuilder 文件如下所示

json.name @component.preference_data.id
json.value @component.preference_data.value

【问题讨论】:

  • 您必须提供更多关于您现有的 JBuilder 当前外观的信息。只有这样才能评估要添加/删除的内容。
  • 是的,响应看起来像这样。但为了确定需要更改的内容,我们需要查看 JBuilder 代码。
  • 这是 JBuilder 响应当前的样子。我的意思是,这是我们在执行 JBuilder 时收到的输出。输入呢?会有一个文件定义json.name <some_name> 等。这是我们需要确定要更改的内容
  • @AnujKhandelwal 我现在用 jbuilder 输入编辑了问题。
  • 您想要的输出不是有效的 JSON

标签: ruby-on-rails json jbuilder


【解决方案1】:

从问题来看,您在value 字段中收到的数据似乎是一个字符串化的 JSON。您必须解析 JSON 并检索所需的值,如下所示:

json.value JSON.parse(@component.preference_data.value)['value']

基本上,@component.preference_data.value 返回一个字符串,使用JSON.parse 将其解析为 JSON。最后,我们得到一个哈希,其'value' 字段被检索到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多