0

私は次のドメインクラスを持っています

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

    String pageID
    Map lp
}

私はSOのようにDBにクエリを実行しています:

...
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 に答える