【发布时间】:2020-12-19 16:52:26
【问题描述】:
我正在构建一个医疗保健应用程序,它支持一些 FHIR 操作,因此使用 jsonb 将记录存储在数据库中。
现在我想从我的参数哈希中删除空值。哈希的 JSON 表示形式如下所示:
{
"id": "f134638f-b64b-4663-8295-9ebbd00a5044",
"name": [
{
"text": "Dr. Maximilian Rohleder-Kirsch",
"given": [
"Maximilian"
],
"family": "Rohleder-Kirsch",
"prefix": [
"Dr."
],
"suffix": [
""
]
}
],
"active": true,
"gender": "male",
"address": [
{
"use": "home",
"line": [
"Wilhelmstraße"
],
"type": "physical",
"district": "Aßlar",
"postalCode": "35614"
}
],
"birthDate": null,
"identifier": [
"#<AttrJson::Type::Model:0x00007f61a4059170>"
],
"resourceType": "Patient",
"deceasedBoolean": false,
"deceasedDateTime": null
}
使用 Rails 的reject 功能可以很容易地从正常的、未嵌套的哈希中删除空键/值对。
问题是(由于 FHIR 标准)例如 suffix 字段包含另一个数组,根据定义,它不是空白的,因为它包含一个空字符串 - 但如果是这种情况,则应删除整个 suffix 键来自哈希。
你知道怎么做吗?
我的计划是对每个键和值进行递归迭代,并检查该值是否为数组。
【问题讨论】:
-
您能否更准确地定义“空值”的含义?比如
suffix: ['']这对的值是一个包含一个元素的数组,显然不为空。此外,在给出示例时,显示所需的结果(作为 Ruby 对象)总是有帮助的。 -
我会把你的沉默当作“不”。
标签: ruby-on-rails ruby ruby-hash