【问题标题】:How to remove field from JSON in Grails如何从 Grails 中的 JSON 中删除字段
【发布时间】:2013-05-31 13:46:20
【问题描述】:

我已经实现了域类:

package xxx

class Machine {

    String name

    static constraints = {
    }
}

我也有服务:

package xxx

import javax.ws.rs.Path
import javax.ws.rs.GET
import javax.ws.rs.Produces
import grails.converters.JSON
import org.json.simple.JSONObject


@Path('/api/machine')
class MachineService {

    @GET
    @Produces(['application/json'])
    def String readAll() {
        Machine.findAll() as JSON
    }
}

输出是:

[{"class":"xxx.Machine","id":1,"name":"test1"},{"class":"xxx.Machine","id":2,"name" :"test2"},{"class":"xxx.Machine","id":3,"name":"test3"}]

我想删除字段“class”。你能告诉我实现这个目标的最简单方法吗?

【问题讨论】:

  • 当它被转换为 JSON 时,你总是想删除类还是仅仅在这个实例中?
  • 我有很多域,我想从所有域中删除该域。
  • 如果你在谈论跨域,你可能需要扩展 JSON 转换器以始终排除它。
  • 你能解释一下吗?我正在寻找最简单的解决方案。假设我只想从域机器中删除这个字段,对吧?

标签: json grails get


【解决方案1】:

查看我的回答here。只需注册自定义编组器并从所有呈现的类中删除 class 属性

更新: 像这样更改排除的属性:String[] excludedProperties=['metaClass','class']

【讨论】:

  • 如何删除类属性?
  • 你读过答案吗?完整的描述在这里。像这样更改排除的属性: String[] excludeProperties=['metaClass','class'] 就是这样。
  • 呃,抱歉……在我尝试这个之前,我已经尝试了很多解决方案。午睡后,我再次阅读了您的帖子,当然,它有效:)
猜你喜欢
  • 1970-01-01
  • 2021-10-29
  • 2020-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-11
  • 2015-07-02
相关资源
最近更新 更多