2010-11-28 36 views
0

i ont cette classe de domaine:Grails. Classe de domaine problème de chaîne JSON

package test 

class Credit { 


    String office; 
    String branch; 
    String name; 
    Integer code; 
    Integer number; 
    Integer term; 
    Integer amount; 
    Integer rate; 


    static hasMany = [ debts : Debt, 
       fronts : Front, 
       securities : Security, 
       lawyers : Lawyer, 
       guarantes : Guarante] 


    static constraints = { 
    } 
} 

Je dois créer une chaîne JSON, qui ne contient que des informations sur ces champs:

String office; 
     String branch; 
     String name; 
     Integer code; 
     Integer number; 
     Integer term; 
     Integer amount; 
     Integer rate; 

J'essaie:

rezult = Credit.list(fetch:[debts:"lazy", fronts: 'lazy', securities: "lazy", lawyers:"lazy", quarantes:"lazy"]) 
render new JSON(success: true, message: 'ok', data:rezult); 

mais dans la chaîne JSON j'ai toutes les données :(dettes, fronts, titres ... à l'intérieur de la chaîne aussi mais je n'ai pas besoin de ces données

Comment j'évite de les utiliser?

RÉPONSE:

render(contentType:"text/json") { 
    success=true 
    message='ok' 
    totalCount=Credit.count() 
    data = array { 
     for(d in results) { 
      data office:d.office, 
        branch:d.branch, 
        name: d.name, 
        code:d.code, 
        number:d.number, 
        term:d.term, 
        amount:d.amount, 
        rate:d.rate 
     } 
    } 
} 

Répondre

1

Vous pouvez essayer de mettre setRenderDomainClassRelations sur JSON à faux mais je suppose que vous vraiment Il est nécessaire d'utiliser un générateur et de déclarer explicitement la structure JSON:

render(builder:'json') { 
    success(true) 
    message('ok') 
    data { 
    office(rezult.office) 
    branch(rezult.branch) 
    // and so on 
    } 
    } 
}