2015-10-31 6 views
9

कहते हैं के लिए उर्फ ​​मैं एक वस्तु है:जावा फील्ड नाम

Object A 
    String field1 = "abc"; 
    String field2 = "xyz"; 

ऊपर के लिए json है:

{ 
    "ObjectA": { 
     "field1": "abc", 
     "field2": "xyz" 
    } 
} 

मैं भेजने से पहले फ़ील्ड नाम के लिए एक नया आईडी बनाने के लिए कोशिश कर रहा था जेसन जैसे "फ़ील्ड 1" को "एफ 1" और "फ़ील्ड 2" कहा जा सकता है जिसे "एफ 2" कहा जाता है। तो इच्छित आउटपुट जेसन नीचे दिखाया गया है:

{ 
    "ObjectA": { 
     "f1": "abc", 
     "f2": "xyz" 
    } 
} 

मुझे यकीन नहीं है कि यह कैसे करें। क्या ऊपर से साफ तरीके से किया जा सकता है? आपकी मदद और पॉइंटर्स के लिए धन्यवाद।

मैं जीसन का उपयोग कर रहा हूं।

+1

ऐसा लगता है कि '@ SerializedName' वाले फ़ील्ड को एनोटेट करने की तरह चाल चल सकती है ([दस्तावेज़ीकरण के लिंक] (https://sites.google.com/site/gson/gson-user-guide#TOC-JSON- फ़ील्ड- नामकरण-समर्थन))। –

+1

धन्यवाद @ मिक। मैंने उदाहरण देखा और इसे काम करना चाहिए। सहायता के लिए – userDSSR

उत्तर

17

अपने क्षेत्रों में एनोटेशन @SerializedName("name") का उपयोग करें। इस तरह:

Object A 
    @SerializedName("f1") 
    String field1 = "abc"; 
    @SerializedName("f2") 
    String field2 = "xyz"; 

https://google.github.io/gson/apidocs/com/google/gson/annotations/SerializedName.html देखें।

+0

धन्यवाद @ जेस्पर। यह मेरे लिए काम करना चाहिए। – userDSSR

+0

हालांकि उपर्युक्त काम - @ जेस्पर। मेरे पास कई वर्ग और कई क्षेत्र हैं। पूर्व। कई फ़ील्ड में "फ़ील्ड 1" कई दिखाई देते हैं। उपर्युक्त विधि में, मुझे प्रत्येक वर्ग में जाना होगा और प्रत्येक 'स्ट्रिंग फ़ील्ड 1' में '@SerializedName ("f1")' जोड़ना होगा। यह रखरखाव मुद्दा बन सकता है। उपनामों को रखने का कोई तरीका है उदा। उपनाम कक्षा में "field1 = f1", और क्रमबद्धता के दौरान इसे कॉल करें। सिर्फ एक विचार। – userDSSR

+0

बस इस मुद्दे को बंद करना चाहता था। मुझे सबसे अच्छा तरीका मिला - परिभाषाओं के साथ - निरंतर वर्ग को परिभाषित करना था। तब स्थिरांक को एनोटेशन में उपयोग किया जा सकता है। यदि स्थिरांक की परिभाषा बदल दी जाती है, तो यह उस निरंतर उपयोग की जाने वाली सभी टिप्पणियों पर प्रतिबिंबित होती है। – userDSSR

संबंधित मुद्दे