/ / Grails - JSON - json, grails, web, request, grails-domain-class का उपयोग करके डोमेन वर्ग की शुरुआत करना

Grails - जेएसओएन - जेसन, grails, वेब, अनुरोध, grails- डोमेन वर्ग का उपयोग कर डोमेन कक्षा शुरू करना

मेरे पास यह सरल डोमेन वर्ग है:

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 हालांकि सेट किया जा रहा है s.person नक्शा खाली रहता है। मैं क्या खो रहा हूँ?

उत्तर:

जवाब के लिए 2 № 1

आप अपने नियंत्रक में निम्नलिखित की तरह कुछ कर सकते हैं:

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

यह बदसूरत है, लेकिन डेटा बाइंडिंग नहीं है "नेस्टेड जोंस को संभालने के लिए


उत्तर № 2 के लिए 1

यदि आप चाहते हैं कि काम करने के लिए आपको अपनी संरचना को इसमें बदलना होगा:

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

जवाब के लिए 0 № 3

यदि आप सेटिंग को त्वरित करने से पहले इस पंक्ति को जोड़ते हैं, तो यह पुनरावर्ती रूप से बाध्य हो जाएगा।

JSON.use("deep")