javascript - Grails 2.4.4 绑定(bind) JSON 嵌套对象

标签 javascript json grails openehr

我有一个模型,有 3 个类,A、Parent 和 Child。一个 hasMany Parent,而 Child 扩展了 Parent。

我需要处理 UI 上的复杂逻辑来创建模型,并决定发布一个与我的域模型结构相同的 JSON 对象。现在,我有一个 A 的实例,它有一些关联的 Child 实例,在客户端的 javascript 对象中。

当我发布 javascript 对象,将其序列化为 JSON 字符串时, Controller 可以接收到它,然后我这样做: def a = new A(request.JSON);

创建了 A 实例,但在 hasMany 关系上,它具有 Parent 实例而不是 Child 实例,因此我丢失了 Child 的所有属性值。

我如何告诉 Grails 创建 Child 的实例而不是 Parent 的实例?

更新

Controller 接收到的 request.JSON 结构如下所示:

[
 name: name,
 group: none,
 where: [
    [
        codeOperand: in_list,
        archetypeId: openEHR-EHR-EVALUATION.problem_diagnosis.v1,
        codeValues: [
            aaa,
            bbb
        ],
        path: /data[at0001]/items[at0005]/value,
        class: Child1,
        terminologyIdValues: [
            cie
        ],
        rmTypeName: DV_CODED_TEXT,
        terminologyIdOperand: eq
    ],
    [
        magnitudeValues: [
            1,
            22
        ],
        archetypeId: openEHR-EHR-OBSERVATION.blood_pressure.v1,
        path: /data[at0001]/events[at0006]/data[at0003]/items[at0004]/value,
        unitsOperand: eq,
        class: Child2,
        magnitudeOperand: between,
        rmTypeName: DV_QUANTITY,
        unitsValues: [
            mmHg
        ]
    ]
 ]
]

在这种情况下,我有 2 个继承自 Parent 的类 Child1 和 Child2。

我已经为对象添加了“类”属性,因为我读到这可能会解决问题,但它没有。

当我打印与 A 实例关联的对象时,我得到了正确数量的实例,但所有类都是“父类”,正如您所看到的,一些值是绑定(bind)的,但都是父类的属性。
[
 (archetypeId: openEHR-EHR-EVALUATION.problem_diagnosis.v1,
  path: /data[at0001]/items[at0005]/value,
  rmTypeName: DV_CODED_TEXT,
  class: Parent),
 (archetypeId: openEHR-EHR-OBSERVATION.blood_pressure.v1,
  path: /data[at0001]/events[at0006]/data[at0003]/items[at0004]/value, 
  rmTypeName: DV_QUANTITY,
  class: Parent)
]

最佳答案

我最终创建了遍历 JSON 对象并创建域实例的代码。

关于javascript - Grails 2.4.4 绑定(bind) JSON 嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31332242/

相关文章:

javascript - Webpack 找不到入口模块

javascript - 如何从 server.js 向 Controller 发送请求?

javascript - 在 JavaScript 中使用 Json 值中的表情符号替换文本

json - Grails-呈现JSON

grails - grails test-app单元测试类未找到被测类的最新版本(找不到符号)

javascript - 如何将输入(文本)值添加到链接的 href 属性中

javascript - 如何在phonegap中使用输入类型文件?

javascript - Highcharts - 饼图动态更改切片颜色

python - 如何在我的 App Engine 应用程序中请求本地 URL?

grails - grails 域类中何时以及为什么应该为空或/和空白约束?