JSON কীগুলিতে হাইফেন ব্যবহার করা কি খারাপ অভ্যাস?


12

আমি হাইফেন (কাবাব-কেস) ব্যবহার করে জেএসএন কীগুলি অ্যাক্সেসের চারপাশে প্রচুর প্রশ্ন ঘুরে দেখছি, তবে এখন আমি নিজেকে ভাবছি যে আমার কীগুলিতে কেবল উটকেস বা সাপ_কে আটকে থাকা উচিত। আমি জানি হাইফেনগুলি ভাষার মধ্যে পোর্ট করার সময় জটিল ম্যাপিংগুলিও তৈরি করতে পারে। আমি দেখেছি কিছু জেএসওএন লাইব্রেরিগুলি এই কীগুলি একটি উটকেস স্টাইলে রূপান্তর করে de

উদাহরণ:

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

বনাম

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

4
পেইলড ফর্ম্যাটগুলি সম্পর্কে REST এর কিছুই বলার নেই।
এরিক স্টেইন

2
আপনি কেন জেএসএন-তে কাবাব-কেস ব্যবহার করবেন? লোকেরা সাধারণত জেএসএনের জন্য উটকেস ব্যবহার করে কারণ প্রোগ্রামিং পরিবেশের নামকরণের সম্মেলনগুলি অনুসরণ করা সর্বদা ভাল অনুশীলন এবং জাভাস্ক্রিপ্টে ভেরিয়েবলের জন্য উটকেস ব্যবহার করার এটি আদর্শ অনুশীলন। যদিও আমি এই ধারণাটি দিয়ে যাচ্ছি যে আপনি জাভাস্ক্রিপ্টের সাথে যোগাযোগের জন্য JSON ব্যবহার করছেন।
অল্টারনেটেক্স

1
আমি প্রশ্নটি জাভাস্ক্রিপ্টের সাথে ট্যাগ করা দেখছি, তবে প্রশ্নটি নিজে থেকেই বিভিন্ন ভাষা / গ্রন্থাগারগুলির মধ্যে একটি এপিআই সম্পর্কে বলে মনে হচ্ছে। আপনি যদি জাভাস্ক্রিপ্ট নিয়ে উদ্বিগ্ন হন তবে নোট নোটেশন হাইফেনের সাথে কাজ করে না তা নোট করুন।
ইজকাটা

5
এটি সত্যই খারাপ অভ্যাস নয়, যেহেতু জেএসওএন ভাষা স্বাধীন এবং তাই কোনও বিশেষ ভাষার বাক্য গঠন দ্বারা বাধা দেওয়া উচিত নয়। এটি বলেছিল, কেবলমাত্র বর্ণানুক্রমিক অক্ষর ব্যবহার করা আমাদের বোধগম্য, যেহেতু এটি সমস্ত মূলধারার ভাষাগুলিতে সনাক্তকারীদের জন্য সরাসরি ম্যাপ করতে পারে, সুতরাং এটি ম্যাপিংয়ের সমস্যাটিকে কমপক্ষে কমিয়ে আনবে।
জ্যাকবিবি

1
@ অলটারনেটেক্স: "কাবাব-কেস" এর জন্য +1 :-)
gnasher729

উত্তর:


13

আপনি JSON কী হিসাবে যেকোন কিছু ব্যবহার করতে পারবেন , যতক্ষণ না এটি বৈধ UTF-8 হয়, সেখানে শূন্য কোড পয়েন্ট থাকে না এবং আপনি যদি আপনার পছন্দসই প্রোগ্রামিং ভাষার স্ট্রিং হিসাবে কীটি উপস্থাপন করতে পারেন তবে এটি কার্যকর হবে be আমি একই স্ট্রিংয়ের বিভিন্ন ইউনিকোড উপস্থাপনা ব্যবহার না করার প্রস্তাব দিতে পারি (উদাহরণস্বরূপ "Ä" এক বা দুটি কোড পয়েন্ট হিসাবে লেখা)।

কিছু মন্তব্য পড়া: দেখে মনে হচ্ছে কিছু লোকেরা JSON অভিধানে কীগুলির সাথে মেলে উদাহরণস্বরূপ ভেরিয়েবলগুলি সহ ক্লাস তৈরি করার চেষ্টা করে। আপনার সিবিওএল না লিখে আপনার কীটি "কিছুটা মূল্যবান" হলে অবশ্যই কোনটি কাজ করে না। আমি মনে করি এটি বিপথগামী। আমার কাছে মডেল ক্লাস রয়েছে যা আমি তাদের পছন্দ মতো ডিজাইন করেছি। জেএসএন সবেমাত্র মডেল ক্লাসগুলি পূরণ করতে ব্যবহৃত হয়। সার্ভারের ছেলেরা কীগুলির জন্য যা ব্যবহার করার সিদ্ধান্ত নিয়েছে আমি তা নিয়ে যাব এবং এটি আমার মডেল অবজেক্টগুলিতে রেখে দেব


1
ইউআরজি, আপনি আপনার গ্রাহক প্রোগ্রামটি কীভাবে জসন কীগুলিতে অ্যাক্সেস করে সে সম্পর্কে প্রশ্নটি জিজ্ঞাসা করুন। সাধারণত এটি একটি বস্তু হিসাবে জেসনকে পার্স করে করা হয়। হাইপেন বা অন্যান্য অক্ষর ব্যবহার করে যা এটি প্রতিরোধ করে কেবল আপনার গ্রাহকদের জন্য জীবনকে শক্ত করে তোলে
ইওয়ান

এবং এটি বৈধ: {"❓": "✅"}
ব্রাসিল

1
হাইফেন কীভাবে কিছু রোধ করে? আমি একটি অভিধান পেয়েছি এবং একটি কী হিসাবে "কিছু-কী" ব্যবহার করতে পারে, এমনকি আমি কী হিসাবে "❓" ব্যবহার করতে পারি।
gnasher729

9

এমন প্রচুর জেএসওএন সিরিয়ালাইজেশন সিস্টেম রয়েছে যা ফিল্ডের নামগুলির মধ্যে ম্যাপিং পরিচালনা করতে সক্ষম যা তাদের সাথে সংহত ভাষায় ব্যবহারের জন্য উপযুক্ত নয়। বেশিরভাগ ক্ষেত্রে, এগুলি ব্যবহার করা শক্ত নয় এবং অতিরিক্ত কিছুটা চেষ্টা করার প্রয়োজন হয়। আদর্শ বিশ্বে আপনার দরকার নেই, তবে আপনার এপিআই যদি ইতিমধ্যে ড্যাশ ব্যবহার করে তবে এটি পরিবর্তন করা রোগের চেয়েও খারাপ নিরাময় cure আরও মনে রাখবেন যে নির্দিষ্ট ভাষাগুলিতে ড্যাশগুলি ব্যবহার করা সর্বাধিক সাধারণ শৈলী, বিশেষত উল্লেখযোগ্যভাবে এলআইএসপি ভিত্তিক, তাই সম্ভবত আপনার এপিআইর গ্রাহকদের মধ্যে একটি নীরব সংখ্যালঘু রয়েছে যারা অন্য ফর্ম্যাটের পরিবর্তে ড্যাশগুলি দেখে খুশি।


আমি এএসএপটিকে ভোট দিয়েছি আমি এতে অন্তর্দৃষ্টি পেয়েছি, ধন্যবাদ।
ম্যাট ওএক্সাকা

1

শিল্পে কিছু সময় ব্যয় করার পরে এবং কয়েকটি সিস্টেমে কাজ করার পরে। আমি মনে করি না জেএসএন কীগুলির জন্য সর্বোত্তম অনুশীলন বা উপযুক্ত কেসিং রয়েছে। যে কোনও বিন্যাসের সবচেয়ে গুরুত্বপূর্ণ দিক (কেসিং / কোড-স্টাইল / ইত্যাদি) ধারাবাহিকতা এবং দল গ্রহণ tion

যদি কোড বেসটি খণ্ডিত এবং বেমানান হয়, একটি দল হিসাবে দেখা করুন এবং একটি সামঞ্জস্যপূর্ণ স্টাইলে সম্মত হন তবে যৌথভাবে ফর্ম্যাটটি পুলিশ করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.