/ / Grails - Ініціювання класу домену за допомогою JSON - json, grails, web, request, grails-domain-class

Грали - ініціювання класу домену за допомогою JSON - json, grails, web, request, grails-domain-class

У мене є такий простий клас домену:

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

String uid
Map person
}

та веб-інтерфейс, який оновлює дані за допомогою запиту json:

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

в коді контролера:

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

здається, що s.uid встановлюється, однак с.особи Карта залишається порожньою. Чого мені не вистачає?

Відповіді:

2 для відповіді № 1

Ви можете зробити щось на зразок наступного у своєму контролері:

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

це потворно, але прив'язка даних, здається, не обробляє вкладений json


1 для відповіді № 2

Якщо ви хочете, щоб це працювало, вам потрібно перетворити свою структуру на це:

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

0 для відповіді № 3

Якщо ви додасте цей рядок перед створенням налаштувань, він зв’яжеться рекурсивно.

JSON.use("deep")