/ / Grails - Spúšťanie triedy domén pomocou JSON - json, grails, web, request, grails-class-class

Graly - inicializácia triedy domény pomocou JSON - json, grails, web, request, grails-domain-class

Mám túto jednoduchú triedu domén:

class Settings {
static constraints = {
uid(nullable: false, unique: true)
person()
}

String uid
Map person
}

a webové používateľské rozhranie, ktoré aktualizuje údaje pomocou žiadosti json:

{"uid":1234 , person:{"first_name" : "jhon" , "last_name" : "doe"}}

v riadiacom kóde:

def json = request.JSON;
def s = new Settings(json);

Zdá sa, že s.uid je však nastavený s.person Mapa zostáva prázdna. Čo mi chýba?

odpovede:

2 pre odpoveď č. 1

V regulátore môžete urobiť niečo podobné:

def json = request.JSON;
def s = new Settings(json);
s.person = json.person;

je to škaredé, ale väzba údajov sa nezdá, že zvládne vnorené json


1 pre odpoveď č. 2

Ak chcete, aby to fungovalo, musíte konvertovať svoju štruktúru na toto:

{"uid":1234 , "person.first_name": "jhon" , "person.last_name": "doe"}

0 pre odpoveď č. 3

Ak pridáte tento riadok pred inštaláciou Nastavenia, bude sa viazať rekurzívne.

JSON.use("deep")