/ / Grails - Inicjowanie klasy domeny za pomocą JSON - json, grails, web, request, grails-domain-class

Grails - Inicjowanie klasy domeny za pomocą JSON - json, grails, web, request, grails-domain-class

Mam tę prostą klasę domen:

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

String uid
Map person
}

oraz interfejs WWW, który aktualizuje dane za pomocą żądania json:

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

w kodzie kontrolera:

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

wygląda na to że s.uid jest ustawiany jednak s.person Mapa pozostaje pusta. czego mi brakuje?

Odpowiedzi:

2 dla odpowiedzi № 1

W kontrolerze możesz wykonać następujące czynności:

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

jest brzydki, ale powiązanie danych nie wydaje się obsługiwać zagnieżdżonego json


1 dla odpowiedzi nr 2

Jeśli chcesz, aby to działało, musisz przekształcić swoją strukturę w:

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

0 dla odpowiedzi № 3

Jeśli dodasz ten wiersz przed utworzeniem ustawień, będzie on wiązał rekursywnie.

JSON.use("deep")