क्या JSON कुंजियों में हाइफ़न का उपयोग करना बुरा व्यवहार है?


12

मुझे JSON कुंजियों का उपयोग करने के बारे में बहुत सारे प्रश्न घूमते हुए दिखाई देते हैं जो हाइफ़न (कबाब-केस) का उपयोग करते हैं, लेकिन अब मुझे लगता है कि मुझे अपनी कुंजी में कैमल कैस या स्नेक_केस से चिपके रहना चाहिए। मुझे पता है कि हाइफ़न भाषाओं के बीच पोर्ट किए जाने पर जटिल मैपिंग भी बना सकते हैं। मैंने देखा है कुछ JSON deserialize पुस्तकालयों को उन कुंजियों को कैमेलकेस शैली में परिवर्तित करता है।

उदाहरण:

var something = {
  "some-value": 'thing'
}

बनाम

var something = {
  "someValue": 'thing',
  "some_other_value": 'thing_two'
}

4
पेलोड प्रारूपों के बारे में आरईएसटी के पास कहने के लिए कुछ नहीं है।
एरिक स्टीन

2
आप JSON में कबाब-केस का उपयोग क्यों करते हैं? लोग आमतौर पर JSON के लिए कैमलकेस का उपयोग करते हैं क्योंकि प्रोग्रामिंग वातावरण के नामकरण सम्मेलनों का पालन करना हमेशा अच्छा होता है और जावास्क्रिप्ट में चर के लिए कैमलकेस का उपयोग करने के लिए यह मानक अभ्यास है। हालांकि मैं इस धारणा से जा रहा हूं कि आप जावास्क्रिप्ट के साथ संवाद करने के लिए JSON का उपयोग कर रहे हैं।
अल्टरनेटेक्स

1
मैं देखता हूं कि प्रश्न को जावास्क्रिप्ट के साथ टैग किया गया है, लेकिन प्रश्न स्वयं को विभिन्न भाषाओं / पुस्तकालयों के बीच एपीआई के बारे में लगता है। यदि आप जावास्क्रिप्ट के साथ संबंध रखते हैं, तो ध्यान दें कि डॉट नोटेशन हाइफ़न के साथ काम नहीं करता है।
इज़्काता

5
यह वास्तव में एक बुरा अभ्यास नहीं है, क्योंकि JSON स्वतंत्र भाषा है और इसलिए किसी विशेष भाषा के वाक्य विन्यास द्वारा विवश नहीं होना चाहिए। उस ने कहा, यह केवल अल्फ़ान्यूमेरिकल वर्णों का उपयोग करने के लिए समझ में आता है, क्योंकि यह सभी मुख्यधारा की भाषाओं में सीधे पहचानकर्ताओं के लिए मैप कर सकता है, इसलिए यह केवल मैपिंग की कम से कम राशि का कारण होगा।
जैक्सबी

1
@Alternatex: +1 "कबाब-केस" के लिए :-)
gnasher729

जवाबों:


13

आप JSON कुंजी के रूप में कुछ भी उपयोग कर सकते हैं , जब तक कि यह वैध UTF-8 है, इसमें शून्य कोड अंक नहीं हैं, और यह तब उपयोगी होगा जब आप अपनी पसंद की प्रोग्रामिंग भाषा में कुंजी को स्ट्रिंग के रूप में प्रस्तुत कर सकते हैं। मैं एक ही स्ट्रिंग के विभिन्न यूनिकोड अभ्यावेदन (उदाहरण के लिए "not" को एक या दो कोड बिंदुओं के रूप में उपयोग नहीं करने की सलाह दे सकता हूं)।

कुछ टिप्पणियाँ पढ़ना: ऐसा लगता है कि कुछ लोग उदाहरण वेरिएबल्स के साथ कक्षाएं बनाने की कोशिश करते हैं जो JSON शब्दकोशों में कुंजियों से मेल खाते हैं। जब तक आप COBOL नहीं लिखते हैं, तो आपकी कुंजी "कुछ-मूल्य" होने पर कौन सा काम नहीं करता है। मुझे लगता है कि यह गुमराह है। मेरे पास मॉडल कक्षाएं हैं, जिन्हें मैं चाहता हूं कि उन्हें जिस तरह से डिजाइन किया गया है। JSON का उपयोग केवल मॉडल कक्षाओं को भरने के लिए किया जाता है। मैं जो कुछ भी सर्वर लोगों ने कुंजियों के लिए उपयोग करने का फैसला किया है और इसे अपने मॉडल ऑब्जेक्ट में डालूंगा ।


1
तत्काल, आप इस सवाल पर भीख माँगते हैं कि आपका उपभोग कार्यक्रम कैसे जोंस कीज़ तक पहुँचता है। आमतौर पर यह एक वस्तु के रूप में जार को पार्स करके किया जाता है। हाइपेंस या अन्य पात्रों का उपयोग करना जो इसे रोकते हैं, आपके उपभोक्ताओं के लिए जीवन को कठिन बनाते हैं
इवान

और यह मान्य है: {"❓": "}"}
विनीसियस ब्रासिल

1
हाइफ़न कुछ भी कैसे रोकते हैं? मुझे एक शब्दकोष मिलता है, और "कुछ-कुंजी" को एक कुंजी के रूप में उपयोग कर सकते हैं, मैं एक कुंजी के रूप में "❓" का भी उपयोग कर सकता हूं।
gnasher729

9

बहुत सारे JSON सीरियललाइज़ेशन सिस्टम हैं जो फील्ड नामों के बीच मैपिंग को संभालने में सक्षम हैं, जो उस भाषा में उपयोग के लिए उपयुक्त नहीं हैं, जिसके साथ वे एकीकृत हैं। ज्यादातर मामलों में, वे उपयोग करने के लिए कठिन नहीं होते हैं, और केवल थोड़े से अतिरिक्त प्रयास की आवश्यकता होती है। एक आदर्श दुनिया में, आपको नहीं करना होगा, लेकिन यदि आपका एपीआई पहले से ही डैश का उपयोग करता है, तो इसे बदलना बीमारी से बदतर होगा। यह भी ध्यान दें कि डैश का उपयोग कुछ भाषाओं में सबसे आम शैली है, सबसे विशेष रूप से उन पर आधारित है, इसलिए संभवतः आपके एपीआई के उपभोक्ताओं का एक मूक अल्पसंख्यक है जो अन्य प्रारूप के बजाय डैश को देखकर खुश हैं।


मैं इस ASAP को वोट दूंगा, मुझे इसमें जानकारी मिली, थैंक यू।
मैट ओक्साका

1

उद्योग में कुछ समय बिताने और कुछ सिस्टम काम करने के बाद। मुझे नहीं लगता कि JSON कुंजियों के लिए एक सर्वोत्तम अभ्यास या उचित आवरण है। किसी भी स्वरूपण (आवरण / कोड-शैली / आदि) का सबसे महत्वपूर्ण पहलू स्थिरता और टीम को अपनाना है।

यदि कोड आधार खंडित और असंगत है, एक टीम के रूप में मिलते हैं और एक सुसंगत शैली पर सहमत होते हैं तो सामूहिक रूप से पुलिस बनाते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.