উত্তর:
এগুলির যে কোনও একটি সত্য হলে JSON এর উপরে XML পছন্দ করুন:
এক্সএমএলের উপরে জেএসনকে পছন্দ করুন যখন এগুলি সমস্ত সত্য হয়:
আমি এক্সএমএল ব্যবহার করার প্রয়োজন না হলে আমি জেএসএন ব্যবহার করি। এটি বোঝা সহজ, এবং (কারণ এটির জন্য কম কনফিগারেশন ওভারহেডের প্রয়োজন হয়) আপনার গ্রন্থাগারগুলি যদি আপনার প্রসঙ্গে পাওয়া যায় তবে পড়া এবং লেখার জন্য প্রোগ্রাম করা আরও সহজ, এবং তারা এখন বেশ সর্বব্যাপী।
যখন অ্যামাজন প্রথমে ওয়েব পরিষেবা হিসাবে তাদের ক্যাটালগগুলি উন্মোচিত করেছিল, তারা জেএসএন এবং এক্সএমএল উভয়ই সরবরাহ করেছিল। প্রায় 90% প্রয়োগকারীরা JSON বেছে নিয়েছিল।
আপনার নির্দিষ্ট ক্ষেত্রে যেখানে আপনি ইতিমধ্যে ক্লায়েন্টের পক্ষ থেকে জাভাস্ক্রিপ্ট করছেন তা বিবেচনা করে, আমি এই কারণে JSON এর সাথে যেতে চাই:
যেহেতু জেএসএন জাভাস্ক্রিপ্টের স্থানীয়, আপনি ক্লায়েন্টের পক্ষে কম কোড লিখতে হবে - জাস্ট eval()
(বা আরও ভাল, JSON.parse()
) জেএসএন স্ট্রিংটি এবং আপনি ব্যবহার করতে পারেন এমন কোনও সামগ্রী পাবেন।
একই সময়ে ক্লায়েন্ট-সাইডে জেএসএনকে মূল্যায়ন করা আরও কার্যকর এবং তত দ্রুত হবে।
জেএসএন সিরিয়ালাইজেশন এক্সএমএলের চেয়ে ছোট স্ট্রিং উত্পাদন করে। জেএসএন ব্যবহার করে তারের জুড়ে চলমান ডেটার পরিমাণ হ্রাস পাবে এবং সেই ক্ষেত্রে কর্মক্ষমতা উন্নত হবে।
এখানে আরও কিছু পড়তে হবে: http://www.subbu.org/blog/2006/08/json-vs-xML
eval()
JSON একটি বড় ing চল নেই?
এক্সএমএল বনাম জেএসওএন রিমেল-এ আমি আরও কয়েকটি জিনিস চালিয়েছি:
JSON এর জন্য খুব ভাল
যার অর্থ এটি একটি অ্যারে বা নেস্টেড অ্যারে পছন্দ করে। তবে জেএসওন দু'জনকেই নিখোঁজ করছে
সুতরাং আপনি যদি দুটি বা ততোধিক জেএসওএন পরিষেবাদির সংমিশ্রণ করেন তবে সম্ভাব্য নেমস্পেস বিবাদ হতে পারে। বলা হচ্ছে যে JSON আমার অভিজ্ঞতার সাথে ডেটা এক্সচেঞ্জ করার সময় XML ব্যবহার করা যেতে পারে একই জিনিসগুলির প্রায় 90% জন্য ব্যবহার করা যেতে পারে।
সাধারণত জেএসএন আরও কমপ্যাক্ট, এবং পার্স করার পক্ষে দ্রুত।
এক্সএমএল পছন্দ করুন যদি:
(প্রায়) এক্সএমএলের একটি গুরুত্বপূর্ণ বিষয়: এইচটিএমএল স্নিপেটগুলি প্রেরণ করার সময় সনাক্ত করার চেষ্টা করুন কাঁচা ডেটা প্রেরণের চেয়ে বেশি উপকারী। এএএএএচএস সাধারণ অ্যাপ্লিকেশনগুলিতে বিস্ময়কর কাজ করতে পারে, তবুও প্রায়শই উপেক্ষা করা হয়। সাধারণত এই স্টাইলটি ধরে নিয়েছে যে কোনও সার্ভার এইচটিএমএল স্নিপেটগুলি প্রেরণ করে যা ওয়েব পৃষ্ঠায় প্রক্রিয়াকরণ ছাড়াই ইনলাইন করা হবে।
সাধারণত এএএএচএইচ ক্ষেত্রে সিসিপিগুলি স্নিপেটগুলিকে চাক্ষুষভাবে ম্যাসেজ করার জন্য এবং ব্যবহারকারী-সুনির্দিষ্ট বা অ্যাপ্লিকেশন-নির্দিষ্ট সেটিংস ব্যবহার করে স্নিপেটের প্রাসঙ্গিক অংশগুলি লুকানো / দেখানোর মতো সাধারণ শর্তাবলীর প্রয়োগ করার জন্য সর্বোচ্চ ব্যবহার করা হয়।
JSON পার্স করা সহজ এবং দ্রুত। এক্সএমএল পার্স করা আরও কিছুটা কঠিন এবং পার্স করা এবং স্থানান্তর করতে ধীর (বেশিরভাগ ক্ষেত্রে)।
যেহেতু আপনি jQuery ব্যবহার করছেন, আমি JSON ব্যবহার করার পরামর্শ দিচ্ছি: jQuery JSON ডেটা পুনরুদ্ধার করতে এবং এটি স্বয়ংক্রিয়ভাবে জাভাস্ক্রিপ্ট অবজেক্টে রূপান্তর করতে পারে। প্রকৃতপক্ষে, আপনি জেএসএন ডেটাটিকে জাভাস্ক্রিপ্ট অবজেক্টে eval ব্যবহার করে রূপান্তর করতে পারেন । এক্সএমএলটি আপনাকে ম্যানুয়ালি ট্রান্সফার করতে হবে (জাভাস্ক্রিপ্টে এটি কীভাবে কাজ করে তা আমি জানি না, তবে বেশিরভাগ ভাষায় আমি এর সাথে এক্সএমএল লাইব্রেরিগুলি ব্যবহার করেছি / এটি আরও জটিল / আরও বিরক্তিকর)।
ওয়েব প্রোটোকলের ইতিহাস (যেমন এসওএপি, এক্সএমএল, জেএসন, রিস্ট, পক্স, ইত্যাদি) সম্পর্কিত বিশদ সম্পর্কিত একটি ব্লগ পোস্ট আমার রয়েছে যার প্রতিটি সংক্ষিপ্তসার পাশাপাশি কিছু সুবিধা এবং অসুবিধা রয়েছে: http://www.servicestack.net / mythz_blog /? P = 154
আমি আসলে মনে করি আপনি গতিশীল (জেএসএন) এবং স্ট্যাটিক (এক্সএমএল) ভাষার মধ্যে পার্থক্য তুলনা করে এক্সএমএল এবং জেএসএনের মধ্যে অনেকগুলি মিল খুঁজে পেতে পারেন।
মূলত এক্সএমএল একটি কঠোর, আরও কঠোর সিরিয়ালাইজেশন ফর্ম্যাট যা optionচ্ছিকভাবে তার সাথে থাকা স্কিমা (যা কোনও এক্সএসডি বা ডিটিডি হয়) দিয়ে যাচাই করা যেতে পারে। এক্সএসডি এর বেশ বিস্তৃত এবং আপনাকে অনেকগুলি বিভিন্ন ধরণের যেমন তারিখ, টাইমস, গণনা, ব্যবহারকারী সংজ্ঞায়িত প্রকার এবং এমনকি টাইপ উত্তরাধিকার ইত্যাদির বর্ণনা দিতে দেয়। এসওএপি কার্যকরভাবে এক্সএমএল বৈশিষ্ট্য-সেটটির উপরে আপনার ওয়েব পরিষেবাদি বর্ণনা করার মানকযুক্ত উপায় সরবরাহ করে ( উদাহরণস্বরূপ প্রকার এবং ক্রিয়াকলাপ) একটি ডাব্লুএসডিএলের মাধ্যমে। ডাব্লুএসডিএল অনুমানের ক্রিয়াপদ এবং জটিলতার অর্থ হল যে এটির সাথে বিকাশ করা আরও ক্লান্তিকর হতে পারে তবে একই সাথে আপনার কাছে আরও অনেক সরঞ্জাম উপলব্ধ রয়েছে এবং বেশিরভাগ আধুনিক ভাষাগুলি আপনার ক্লায়েন্টের প্রক্সিগুলি তৈরি করতে কিছুটা বোঝা নেওয়ার জন্য স্বয়ংক্রিয় সরঞ্জাম সরবরাহ করে provide বাহ্যিক পরিষেবাদিগুলির সাথে আন্তঃব্যবহার করার চেষ্টা করার সময় বন্ধ।
আমি এখনও আপনার ওয়েব পরিষেবাদির জন্য এক্সএমএল ব্যবহারের পরামর্শ দিচ্ছি যদি আপনার যদি একটি ভালভাবে সংজ্ঞায়িত 'এন্টারপ্রাইজ পরিষেবা' থাকে যা ঘন ঘন পরিবর্তনের সাপেক্ষে না হয় বা আপনার ওয়েব পরিষেবাদিকে বিভিন্ন ভাষা থেকে অ্যাক্সেস করা প্রয়োজন হয়।
এর সমস্ত সুবিধার জন্য এক্সএমএল ডাউনসাইড পাশাপাশি আসে। এটি টাইপড এক্সটেনসিবল ফর্ম্যাট সরবরাহ করার জন্য নেমস্পেসের উপর নির্ভর করে এবং আপনাকে একই ডকুমেন্টের মধ্যে বৈশিষ্ট্য এবং উপাদান নির্দিষ্ট করতে সক্ষম করে। একটি ডকুমেন্টের মধ্যে আলাদা আলাদা নেমস্পেস থাকা মানে ডেটা উত্তোলনের জন্য এক্সএমএল পার্সার ব্যবহার করার সময় অনেক সময়, আপনাকে পুনরুদ্ধার / ট্র্যাভার্স পেতে প্রতিটি উপাদানটির নামের স্থানও সরবরাহ করতে হবে। এটি পে-লোডকে অতিরিক্ত ভারবোস করে তোলে যা এটি করা দরকার। বৈশিষ্ট্যগুলির পাশাপাশি আউটপুট বৈশিষ্ট্যগুলির বিকল্প থাকার অর্থ আপনার ক্লাসগুলি কোনও এক্সএমএল ডকুমেন্টে সুন্দরভাবে মানচিত্র করে না। এই বৈশিষ্ট্যগুলি একাই এটিকে বেশিরভাগ ভাষার জন্য কাজ করার জন্য আরও ক্লান্তিকর এবং কষ্টকর করে তোলে এটি একটি দুর্বল প্রোগ্রামেটিক ফিট করে।
অন্যদিকে জেএসএন হ'ল এক্সএমএলের সম্পূর্ণ বিপরীত কারণ এটি খুব আলগাভাবে টাইপযুক্ত এবং কেবলমাত্র মৌলিক ধরণের জন্য সহজ সমর্থন: সংখ্যা, বুল, স্ট্রিং, অবজেক্টস এবং অ্যারে। বাকি সমস্ত কিছুই মূলত স্ট্রিংয়ের সাথে খাপ খায়। ভাষার গণ্ডি পেরিয়ে যোগাযোগ করার চেষ্টা করার সময় এটি দুর্দান্ত নয় কারণ আপনি আরও নির্দিষ্ট ধরণের সমর্থন করতে চাইলে আপনাকে কিছু আউট-অফ-ব্যান্ড অ-মানক স্পেসিফিকেশন মেনে চলতে হবে। উল্টোদিকে এটির সীমিত বৈশিষ্ট্য-সেট বেশিরভাগ ভাষায় একটি ভাল প্রোগ্রাম্যাটিক ফিট করে - এবং জাভাস্ক্রিপ্টের জন্য পুরোপুরি উপযোগী কারণ একটি জেএসএন স্ট্রিং সরাসরি জাভাস্ক্রিপ্ট অবজেক্টে খণ্ডন করা যায়।
আকার এবং পারফরম্যান্স
মাইক্রোসফ্টস এক্সএমএল এবং জেএসএন বাস্তবায়নের মধ্যে আকার এবং গতির তুলনা করে আমার কাছে কিছু উত্তর- পশ্চিম ডাটাবেস বেঞ্চমার্ক উপলব্ধ । মূলত এক্সএমএল জেএসএনের আকার 2x এরও বেশি তবে একই সাথে দেখে মনে হচ্ছে যে মাইক্রোসফ্ট তাদের এক্সএমএল ডেটা কন্ট্রাক্টরিশিয়ালাইজারকে অনুকূল করে তুলতে অনেক প্রচেষ্টা করেছে কারণ এটি তাদের জেএসওনের তুলনায় 30% এরও বেশি দ্রুত। দেখে মনে হচ্ছে আপনাকে আকার এবং পারফরম্যান্সের মধ্যে বাণিজ্য করতে হবে। এই সত্য নিয়ে সন্তুষ্ট নই, আমি আমার নিজের দ্রুত জসনসারিয়াল লেখার সিদ্ধান্ত নিয়েছি যা এখন 2.6x দ্রুত এবং এমএসের এক্সএমএল এক - এটি উভয় বিশ্বের সবচেয়ে ভাল :)।
আপনি যখন JSON রুটে নামেন, আপনি XML 10 বছর আগে যে একই সমস্যার মুখোমুখি হয়েছিলেন:
একটি জেএসওএন প্যাকেটে দুটি ভিন্ন উত্স থেকে ডেটা মিশ্রিতকরণের ফলে উপাদান লেবেল একে অপরের সাথে ঝাপিয়ে পড়তে পারে। একটি প্যাকিং স্লিপ এবং একটি চালান মিশ্রিত করুন, এবং হঠাৎ করে ঠিকানা থেকে অর্থ কিছু আলাদা হতে পারে। এজন্য এক্সএমএলের নাম স্থান রয়েছে ।
বিভিন্ন জেএসএন কাঠামোর মধ্যে রূপান্তর করার জন্য জাগতিক কোড লেখার প্রয়োজন হবে। ডেটা ম্যাপ করার আরও ঘোষিত উপায় কাজটি আরও সহজ করে তুলবে। এজন্য এক্সএমএল এর এক্সএসএলটি রয়েছে ।
আপনার পরিষেবাগুলিতে লোকেরা toুকে পড়ার জন্য জেএসএন প্যাকেটের কাঠামোর বর্ণনা fields এর ক্ষেত্রগুলি, ডেটা প্রকার ইত্যাদি necessary প্রয়োজনীয় necessary এটির জন্য একটি মেটাডেটা ভাষা থাকা অপরিহার্য। এজন্য এক্সএমএলে স্কিমাস রয়েছে ।
একই সাথে দুটি ক্লায়েন্ট-সার্ভার কথোপকথন চালানো যত্ন নেয়। আপনি যদি সার্ভারকে দুটি প্রশ্ন জিজ্ঞাসা করেন এবং একটি উত্তর ফিরে পান, আপনি কীভাবে জানেন যে এটি কী প্রশ্নের উত্তর দেয়? এজন্য এক্সএমএল-এর ডাব্লুএস-সহসংযোগ রয়েছে ।
Http://json.org/xML.html এ প্রথম লাইন থেকে
এক্সটেনসিবল মার্কআপ ল্যাঙ্গুয়েজ (এক্সএমএল) স্ট্যান্ডার্ড জেনারেলাইজড মার্কআপ ল্যাঙ্গুয়েজ (এসজিএমএল) থেকে প্রাপ্ত একটি পাঠ্য বিন্যাস। এসজিএমএলের তুলনায় এক্সএমএল সহজ simple হাইপারটেক্সট মার্কআপ ল্যাঙ্গুয়েজ (এইচটিএমএল) তুলনা করে, আরও সহজ। তবুও, HTML এ একটি ভাল রেফারেন্স বইটি একটি ইঞ্চি পুরু inch কারণ ডকুমেন্টগুলির বিন্যাসকরণ এবং কাঠামো করা একটি জটিল ব্যবসা। । । ।
স্পষ্টতই JSON দ্রুত, তবে এটি আরও স্পষ্ট যে এটি পড়া শক্ত। গতির জন্য জেএসএন ব্যবহার করুন, মানব-মিথস্ক্রিয়া থাকলে XML ব্যবহার করুন এবং আপনি গতি ত্যাগ করতে পারেন।
এক্সএমএল এবং জেএসএন উভয়ই মাইক্রোসফ্ট দ্বারা সমর্থিত। এক্সএমএল লিটারালগুলি ভিবি 9-তে নতুন শীতল বৈশিষ্ট্য ছিল Aএসপি.নেট 4.0.০ এর আসন্ন সংস্করণে জেএসওএন ক্লায়েন্ট সাইড টেম্প্লেটিংয়ের শক্তিটি অর্জন করার জন্য প্রয়োজনীয়।
আপনি যে প্রশ্নটি জিজ্ঞাসা করেছেন তা থেকে মনে হয় জেএসওএন আপনার পক্ষে পছন্দ হতে পারে কারণ jQuery সহ বা ছাড়াই ক্লায়েন্টের পক্ষে প্রক্রিয়া করা সহজ।
JSON ব্যবহার করে
এক্সএমএল ব্যবহার করা হচ্ছে
আমি এই নিবন্ধটি ডিজিটাল বাজারে পেয়েছি সত্যিই আকর্ষণীয়।
নিবন্ধ থেকে কিছু অংশ নীচে উদ্ধৃত করা হয়।
জেএসওএন সম্পর্কে:
যদি আপনি যা করতে চান তার সবগুলি যদি পারমাণবিক মান বা তালিকা বা পারমাণবিক মানগুলির হ্যাশ হয় তবে জেএসএনের এক্সএমএল এর অনেকগুলি সুবিধা রয়েছে: এটি ইন্টারনেটে সোজাভাবে ব্যবহারযোগ্য, বিভিন্ন অ্যাপ্লিকেশনকে সমর্থন করে, জেএসওএন প্রক্রিয়া করার জন্য প্রোগ্রামগুলি লেখা সহজ, এর কয়েকটি optionচ্ছিক বৈশিষ্ট্য রয়েছে, এটি মানব-সুগঠিত এবং যুক্তিসঙ্গতভাবে পরিষ্কার, এর নকশাটি আনুষ্ঠানিক এবং সংক্ষিপ্ত, জেএসওএন নথিগুলি তৈরি করা সহজ, এবং এটি ইউনিকোড ব্যবহার করে। ...
এক্সএমএল সম্পর্কে:
এক্সএমএল অনঠনযুক্ত ডেটার সম্পূর্ণ nessশ্বর্যের সাথে উল্লেখযোগ্যভাবে ভালভাবে ডিল করে। ওয়েব এপিআই ডিজাইনারদের একটি ক্যাডার দ্বারা মৃত্যুর আনন্দের সাথে উদযাপিত হলেও আমি এক্সএমএলের ভবিষ্যত নিয়ে মোটেও উদ্বিগ্ন নই।
এবং "আমি আপনাকে বলেছিলাম!" আমার ডেস্ক টোকেন দূরে। আমি যখন আরও সমৃদ্ধ এপিআইগুলি বিকাশ করতে বলা হয় তখন জেএসএন লোকেরা কী করে তা দেখার জন্য আমি প্রতীক্ষিত। যখন তারা কম ভাল স্ট্রুকড ডেটা বিনিময় করতে চায়, তখন তারা কী এটি JSON এ জুতা দেবে? আমি JSON এর জন্য একটি স্কিমা ভাষার মাঝে মাঝে উল্লেখ দেখতে পাই, অন্যান্য ভাষা কি অনুসরণ করবে? ...
দ্রুত নিয়ম:
ব্যাখ্যা:
জেএসএনের একমাত্র ভূমিকা হ'ল বেশিরভাগ প্রোগ্রামিং ভাষায়: তালিকাগুলি , হ্যাশগুলি এবং স্কেলারগুলিতে প্রচলিত ডেটা টাইপগুলি ব্যবহার করে অবজেক্ট-ওরিয়েন্টেড ডেটা সিরিয়ালকরণ করা এবং সেই উদ্দেশ্যে এটি সত্যই পিটানো বা উন্নত করা যায় না। বুদ্ধিমান হতে "জেএসএনের কোনও সংস্করণ নম্বর নেই [কারণ] জেএসওএন ব্যাকরণের কোনও সংশোধন প্রত্যাশিত নয়"। - ডগলাস ক্রকফোর্ড (আপনি নিজের কাজটি পুরোপুরিভাবে করছেন এমন চিহ্ন হিসাবে এটি পরাস্ত করতে পারে না)
এক্সএমএল একবার ডেটা আন্ত-পরিবর্তনের ফর্ম্যাট হিসাবে বিক্রি হয়েছিল তবে দুটি সাধারণ ব্যবহারের ক্ষেত্রে বিবেচনা করুন: অ্যাসিনক্রোনাস ক্লায়েন্ট-সার্ভার যোগাযোগ (এজেএক্স) - জেএসওএন পুরোপুরি এক্সএমএলকে পুরোপুরি প্রতিস্থাপন করেছে (এক্সকে সত্যিকার অর্থে জে হওয়া উচিত), এবং ওয়েব পরিষেবাদি : জেএসওএন এক্সএমএলকে একটি অপ্রয়োজনীয় বিকল্প তৈরি করেছে।
এক্সএমএল অন্য যে জিনিসটির জন্য ব্যাপকভাবে ব্যবহৃত হয়েছিল তা ছিল প্রোগ্রামগুলির জন্য মানব লিখনযোগ্য / পাঠযোগ্য (?) ডেটা ফাইল, তবে এখানেও আপনার কাছে ওয়াইএএমএলে একটি আরও সংক্ষিপ্ত, আরও প্রোগ্রাম-বান্ধব, আরও মানব-বান্ধব ফর্ম্যাট রয়েছে, একটি জেএসএন সুপারসেট।
সুতরাং ডেটা উপস্থাপনের জন্য, জেএসএন বোর্ড জুড়ে এক্সএমএলকে পরাজিত করে। এক্সএমএল এর পরে কী বাকি আছে? মিশ্র-সামগ্রী ডকুমেন্ট উপস্থাপনা, যা কি এটা জন্যই ছিল ।
সর্বাধিক নতুন ওয়েব প্রযুক্তি JSON ব্যবহার করে কাজ করে, তাই অবশ্যই JSON ব্যবহারের জন্য একটি ভাল কারণ। একটি দুর্দান্ত সুবিধা হল এক্সএমএলে আপনি একই তথ্যকে একাধিক বিভিন্ন উপায়ে প্রতিনিধিত্ব করতে পারেন, যা জেএসএন-তে আরও সরল।
এছাড়াও জেএসএন আইএমএইচও এক্সএমএল থেকে অনেক বেশি পরিষ্কার, যা এটি আমার জন্য একটি সুস্পষ্ট সুবিধা করে তোলে। এবং যদি আপনি। নেট নিয়ে কাজ করছেন, JSON.NET আপনাকে JSON এর সাথে কাজ করতে সহায়তা করার জন্য একটি স্পষ্ট বিজয়ী।