0

我有以下域类

class Settings {
    static constraints = {
        pageID(nullable: false, unique: true)
        lp()
    }

    String pageID
    Map lp
}

我正在像这样查询数据库:

...
def query = Settings.where {pageID == id}
def result = query.find()

这是评估结果的屏幕截图: 在此处输入图像描述

现在我正在寻找一种将结果格式化为 JSON 的方法,如下所示:

{"lp":{"account":"12345678","appKey":"64dsfg64dg64fg65dfg6","domain":"my.domain.com"},"pageID":"123456"}

提取字段的正确方法是什么?如果我可以避免手动获取每个字段,那将是最好的。谢谢 :)

4

2 回答 2

1

由于我没有找到原生函数,所以我使用@Jinzhao Wu 的方法编写了这个辅助函数:

def getDBRecord(Object dc) {
    def jo = new JSONObject()
    def domainClass = new DefaultGrailsDomainClass(dc.class)
    def props = domainClass.getPersistantProperties()
    for (int i = 0; i < props.length; i++) {
        jo.put(props[i].name, dc[props[i].name]);
    }
    return jo;
}

希望能帮助别人

于 2013-01-06T10:47:48.597 回答
0

只需使用 gorm 动态查找器:

def result = Settings.findByPageId(id)
render result as JSON
于 2013-01-04T04:12:36.520 回答