জেএসএন এবং এক্সএমএল তুলনা [বন্ধ]


273

আমি জানতে চাই কোনটি দ্রুত: এক্সএমএল এবং জেএসএন? কোনটি ব্যবহার করবেন?


60
দ্রুত কোথায়? সংক্রমণ? প্রক্রিয়াকরণ? হচ্ছে? দুজনেরই কোনও পা নেই আপনারা জানেন। সম্ভবত এটির চেয়ে কম মার্কআপ ওভারহেড থাকায় জেএসএন কোনও উপায়ে "দ্রুত"। অন্যদিকে, এক্সএমএল প্রকার, কাঠামো ... তাই বৈধতা নিশ্চিত করার জন্য এক্সএমএলস্কেমা সরবরাহ করে। অন্য যে কোনও আউটপুট ফর্ম্যাটে এক্সএমএলকে রূপান্তর করতে এক্সএসএলটি রয়েছে ... এটি আপনার প্রয়োজনের উপর নির্ভর করে ।
ফেলিক্স ক্লিং

2
পূর্বে জিজ্ঞাসিত অন্যান্য প্রশ্নগুলিও পরীক্ষা করে দেখুন: stackoverflow.com/search?q=json+vs+xml
ফেলিক্স ক্লিং

16
BLARG! এটি এমন কিছু যা আমি সত্যিই জানতে চেয়েছিলাম, এবং এটি এখানে ছিল বলে সত্যই আনন্দিত হয়েছিল এবং উত্তরগুলি ছিল নিখুঁত। খারাপ , আপনারা মডারেটর: সম্ভবত আপনার বাগদানের রায়কে প্রসারিত করার সময় এসেছে। এটির উত্তর দেওয়ার অনুমতি দেওয়ার জন্য আপনার পক্ষে ভাল, কমপক্ষে!
মার্ক গেরোলিমাটোস

এই পোস্টটি খেলাগুলির জন্য খুব দেরিতে হয়েছে কিনা সে সম্পর্কে আমি খেয়াল করি না, তবে আমি সম্মত। যদি কোনও প্রশ্ন দুপু, অপ্রাসঙ্গিক বা পরিষেবার শর্তগুলির সাথে সাংঘর্ষিক হয় তবে সম্ভবত (বদ্ধ / অব্যর্থ থ্রেড) অনুসন্ধানে উঠে আসা প্রথম জিনিসটি হওয়া উচিত নয়। (বিটিডব্লিউ, এটি ২ য় [ধোঁকা] ফলাফল যা আসে) আমি সম্মত হই যে সম্ভবত উত্তরগুলি সরু এবং সংক্ষিপ্ত হওয়া উচিত তবে ফলাফলের পরে যদি ফলাফলটি বন্ধ থাকে, উত্তরহীন থ্রেডে বিষয়বস্তুতে ভরাট থাকে (যা ব্যবহারের শর্তগুলির পরিপন্থী) তবে এটি কাউকে সাহায্য করে না।
ইজাক কার্বেট

2
যদিও জিজ্ঞাসা করা প্রশ্নটি অস্পষ্ট, এটি কোনও মতামত ভিত্তিক প্রশ্ন নয়।
qwr

উত্তর:


221

কোনটি কখন ব্যবহার করবেন তার উত্তর দেওয়ার আগে, একটি সামান্য পটভূমি:

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

জেএসএন আরও কমপ্যাক্ট এবং (আমার দৃষ্টিতে) আরও পঠনযোগ্য - সংক্রমণে এটি "দ্রুত" হতে পারে কেবলমাত্র কম ডেটা স্থানান্তরিত হওয়ার কারণে।

পার্সিংয়ের ক্ষেত্রে এটি আপনার পার্সারের উপর নির্ভর করে। কোডটি (এটি জেএসএন বা এক্সএমএল) একটি ডেটা স্ট্রাকচারে রূপান্তরকারী (মানচিত্রের মতো) XML এর কঠোর প্রকৃতি থেকে উপকৃত হতে পারে ( এক্সএমএল স্কিমাস তথ্যের কাঠামোটি সুন্দরভাবে বিচ্ছিন্ন করে ) - তবে JSON এ কোনও আইটেমের ধরণ (স্ট্রিং / সংখ্যা / নেস্টেড জেএসএন অবজেক্ট) সিন্টেক্সিকভাবে অনুমান করা যায়, যেমন:

myJSON = {"age" : 12,
          "name" : "Danielle"}

12সংখ্যাকে প্রতিনিধিত্ব করে এমনটি বুঝতে পার্সারের পক্ষে যথেষ্ট বুদ্ধিমান হওয়ার প্রয়োজন নেই (এবং Danielleএটি অন্যগুলির মতো স্ট্রিং)। সুতরাং জাভাস্ক্রিপ্ট আমরা করতে পারেন:

anObject = JSON.parse(myJSON);
anObject.age === 12 // True
anObject.name == "Danielle" // True
anObject.age === "12" // False

এক্সএমএলে আমাদের নীচের মতো কিছু করতে হবে:

<person>
    <age>12</age>
    <name>Danielle</name>
</person>

(একদিকে যেমন এটি বিন্দুটি ব্যাখ্যা করে যে এক্সএমএল বরং আরও ভার্বোস; ডেটা সংক্রমণের জন্য উদ্বেগ)। এই ডেটাটি ব্যবহার করতে, আমরা এটি একটি পার্সারের মাধ্যমে চালাতে চাই, তারপরে আমাদের এমন কিছু কল করতে হবে:

myObject = parseThatXMLPlease();
thePeople = myObject.getChildren("person");
thePerson = thePeople[0];
thePerson.getChildren("name")[0].value() == "Danielle" // True
thePerson.getChildren("age")[0].value() == "12" // True

আসলে, একটি ভাল পার্সার আপনার ageজন্য ভাল টাইপ করতে পারে (অন্যদিকে, আপনি এটি ভাল নাও চাইতে পারেন)। আমরা যখন এই ডেটা অ্যাক্সেস করি তখন কী চলছে - উপরের JSON উদাহরণের মতো কোনও অ্যাট্রিবিউট লুকআপ করার পরিবর্তে - আমরা কীটিতে একটি মানচিত্র অনুসন্ধান করছি name। এটির মতো এক্সএমএল গঠন করা আরও স্বজ্ঞাত হতে পারে:

<person name="Danielle" age="12" />

তবে আমাদের ডেটা অ্যাক্সেস করতে আমাদের এখনও মানচিত্রের অনুসন্ধান করতে হবে:

myObject = parseThatXMLPlease();
age = myObject.getChildren("person")[0].getAttr("age");

সম্পাদনা: মূল:

বেশিরভাগ প্রোগ্রামিং ভাষায় (সমস্তই, কোনও প্রসারিত নয়) এগুলির মতো মানচিত্রের অনুসন্ধানটি কোনও অ্যাট্রিবিউট লুক্কুলের চেয়ে বেশি ব্যয়বহুল হবে (যেমন আমরা JSON পার্স করার সময় উপরে পেয়েছি)।

এটি বিভ্রান্তিকর: মনে রাখবেন যে জাভাস্ক্রিপ্টে (এবং অন্যান্য গতিশীল ভাষাগুলি) মানচিত্রের অনুসন্ধান এবং ক্ষেত্র অনুসন্ধানের মধ্যে কোনও পার্থক্য নেই । আসলে, একটি ক্ষেত্র লুকআপ হয় মাত্র একটি মানচিত্র অনুসন্ধান।

আপনি যদি সত্যিই সার্থক তুলনা করতে চান তবে সেরাটি হ'ল বেঞ্চমার্ক করা - যেখানে আপনি ডেটা ব্যবহার করার পরিকল্পনা করছেন সেই প্রসঙ্গে মাপদণ্ডটি করুন।

আমি টাইপ করার সময়, ফেলিক্স ক্লিং ইতিমধ্যে তাদের প্রত্যেকের কখন ব্যবহার করবেন সে ক্ষেত্রে তাদের তুলনা করার জন্য একটি মোটামুটি উত্তরোত্তর উত্তর রেখেছেন, সুতরাং আমি আর কোনও কাজ করব না।


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

2
আমি দেখতে পেয়েছি যে JSON পার্স করা মানুষের পক্ষে সহজ তবে XML কম্পিউটারগুলি পার্স করা আরও সহজ।
Jus12

5
সত্য নয়, উদাহরণস্বরূপ, পিএইচপি-তে, JSON ৮ কে-তে কোনও নির্ভরতা ছাড়াই json.so ব্যবহার করে, অন্যদিকে এক্সএমএল, 54k / 32k এ xml.so বা xmlreader.so প্রয়োজন, তবে libxML2.so প্রয়োজন যা 1.4 ম্যাগ । আরও কোড প্রক্রিয়া করতে এবং আরও মেমরি ব্যবহার করতে আরও বেশি সময় নেয়। উল্লেখ করার মতো নয়, এক্সএমএল, এর নোড / গাছের কাঠামোর কারণে, বিজ্ঞপ্তিযুক্ত রেফারেন্স রয়েছে, যা কোনও ভাষায় ব্যথা হতে পারে যার দুর্বল উল্লেখ নেই। আমি বেশ কয়েকটি ভাষায় খুঁজে পেয়েছি যে এক্সএমএল পার্সারটি তাদের কাউন্টার পার্স্ট জেএসএন পার্সারের তুলনায় অনেক বড় (আরও মেমরি গ্রহণ করে এবং আরও স্মৃতি ব্যবহার করে)।
রাহলি

আপনি এই সম্পর্কিত সম্পর্কহীন তুলনার সাথে জেএসের কঠোর স্থিতি সমস্যাটি কেন মিশ্রণ করবেন? দ্বিগুণ বা ট্রিপল সমান লক্ষণগুলি উল্লেখ করা।
এটেলিকান

1
@atilkan কারণ অনেক পার্সার সংখ্যার স্ট্রিংগুলিকে সংখ্যা হিসাবে বা স্টোর সংখ্যাগুলিকে সংখ্যাযুক্ত স্ট্রিং হিসাবে ব্যাখ্যা করে।
mazunki

244

দ্রুত জেএসএন বা এক্সএমএলের কোনও বৈশিষ্ট্য নয় বা এর ফলস্বরূপ যেগুলির মধ্যে একটি তুলনা পাওয়া যায়। যদি কোনও হয়, তবে এটি পার্সার বা ব্যান্ডউইথের একটি বৈশিষ্ট্য যা আপনি ডেটা প্রেরণ করেন।

এখানে JSON এবং XML এর সুবিধাগুলি এবং অসুবিধাগুলির একটি তালিকা রয়েছে (এর শুরু):


তাদেরকে JSON

প্রো:

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

কন:

  • সরল বাক্য গঠন, কেবলমাত্র কয়েকটি মুষ্টিমেয় বিভিন্ন ধরণের ডেটা সমর্থিত।

  • মন্তব্যের জন্য কোনও সমর্থন নেই।


এক্সএমএল

প্রো:

  • জেনারেলাইজড মার্কআপ; যে কোনও প্রয়োজনের জন্য "উপভাষা" তৈরি করা সম্ভব
  • ডেটাটাইপ, কাঠামোর বৈধতা জন্য এক্সএমএল স্কিমা । নতুন ডেটাটাইপগুলি তৈরি করাও এটি সম্ভব করে তোলে
  • বিভিন্ন আউটপুট ফর্ম্যাটে রূপান্তরের জন্য এক্সএসএলটি
  • গভীরভাবে নেস্টেড স্ট্রাকচারগুলিতে তথ্য আহরণের জন্য এক্সপথ / এক্সকিউয়ারি
  • নেমস্পেসের সমর্থনে নির্মিত

কন:

  • তুলনামূলকভাবে JSON এর তুলনায় শব্দযুক্ত (একই পরিমাণ তথ্যের জন্য আরও ডেটার ফলাফল)।

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

ভাল এবং কনস যোগ করতে নির্দ্বিধায় দয়া করে। আমি এক্সএমএল বিশেষজ্ঞ নই;)


20
এক্সএমএলের জন্য জেএসন এবং প্রো এর জন্য আরেকটি কন: জেএসওএন অবজেক্ট রেফারেন্সকে সমর্থন করে না (চক্রযুক্ত বা না), এক্সএমএল করে। এক্সএমএল idডকুমেন্টের মধ্যে বৈশিষ্ট্যটি অনন্য হতে বাধ্য করে এটি করে।
আর্থ ইঞ্জিন

7
@ আর্থথাইন প্রকৃতপক্ষে জসন.নেট ( json.codeplex.com ) অবজেক্টের রেফারেন্সগুলিকে সমর্থন করে: james.newtonking.com / প্রকল্পগুলি / Json / help / index.html ? topic=html/…
দিমিত্রি লোবানভ

22
@ দিমিত্রিলবানভ: তারা কেবল জেএসএন স্ট্যান্ডার্ডে কিছু অতিরিক্ত বিধিনিষেধ যোগ করেছে, তবে এটি অন্যান্য জেএসওন সরঞ্জাম দ্বারা স্বীকৃত নয়। সুতরাং এটি JSON এর জন্য "নেটিভ" নয়। তবে এক্সএমএলের জন্য, সীমাবদ্ধতাটি স্ট্যান্ডার্ডে লিখিত তাই এটি স্থানীয়।
আর্থ ইঞ্জিন

1
জেএসন স্কিমা সম্পর্কে কী? en.wikedia.org/wiki/JSON#JSON_Schema
জন দো

5
জেএসএনের রয়েছে অ্যারে ইনবিল্ট, পাশাপাশি "নাল" মান। যদিও এক্সএমএলে আপনার স্কিমা পার্সারগুলি জুড়ে আপনার কোনও ধরণের কনভেনশন দরকার। জেএসএনের জন্য এক্সএসএলটি-র মত রূপান্তর প্রকল্পও রয়েছে (যেমন github.com/emlynoregan/bOTLjs )
ভ্যাসিল বোরোভিয়াক

22

প্রক্রিয়াজাতকরণের গতি কেবল প্রাসঙ্গিক বিষয় নাও হতে পারে, যদিও এটিই প্রশ্ন, এখানে একটি মানদণ্ডে কয়েকটি নম্বর রয়েছে: জেএসএন বনাম এক্সএমএল: ভার্বোসিটি সম্পর্কে কিছু হার্ড সংখ্যা । গতির পক্ষে, এই সাধারণ বেঞ্চমার্কে, এক্সএমএল জেএসএনের উপর 21% ওভারহেড উপস্থাপন করে।

ভার্বোসটি সম্পর্কে একটি গুরুত্বপূর্ণ নোট, যা নিবন্ধটি বলেছে, সর্বাধিক সাধারণ অভিযোগ: এটি বাস্তবে এতটা প্রাসঙ্গিক নয় (এক্সএমএল বা জেএসওএন ডেটা সাধারণত মানুষ দ্বারা পরিচালিত হয় না, তবে মেশিনগুলির দ্বারাও হয়), এমনকি যদি বিষয়টি বিবেচনা করে তবে গতি, সংকোচনের জন্য এটি কিছু যুক্তিসঙ্গত আরও সময় প্রয়োজন।

এছাড়াও, এই বেঞ্চমার্কে, প্রচুর পরিমাণে ডেটা প্রক্রিয়া করা হয়েছিল এবং একটি সাধারণ ওয়েব অ্যাপ্লিকেশন 90MB এর মতো আকারের ডেটা অংশগুলি প্রেরণ করে না এবং সংকোচনের পক্ষে উপকারী হতে পারে না (ছোট পর্যাপ্ত ডেটা অংশগুলির জন্য, একটি সংকীর্ণ অংশ সঙ্কুচিত অংশের চেয়ে বড় হবে), তাই প্রযোজ্য নয়।

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

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

যাইহোক, কেবলমাত্র পরীক্ষা আপনার নির্দিষ্ট ব্যবহারের উত্তর সরবরাহ করবে ‑ কেস (যদি গতি সত্যিই একমাত্র বিষয়, এবং মান না সুরক্ষা বা সততা নয় ...)।

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

আপডেট 2: ডাব্লু 3 সি দ্বারা পরিচালিত বাইনারি এক্সএমএল পারফরম্যান্স রিপোর্টগুলিও রয়েছে, দক্ষতা এবং কম মেমরি এবং সিপিইউ পদচিহ্ন হিসাবে এটি এক্সএমএল অঞ্চলের জন্যও একটি বিষয়: দক্ষ এক্সএমএল ইন্টারচেঞ্জ মূল্যায়ন

আপডেট 2015-03-01

এই প্রসঙ্গে লক্ষ্য করার মতো বিষয়, এইচটিটিপি ওভারহেড একটি ইস্যু হিসাবে উত্থাপিত হয়েছিল: আইএএনএ এইচটিটিপি প্রোটোকলের ( সংক্ষেপণ , ডিফ্লেট এবং জিজিপ সহ ) কনটেন্ট কোডিং হিসাবে এক্সআই এনকোডিং (উপরে উল্লিখিত দক্ষ বাইনারি এক্সএমএল) নিবন্ধ করেছে has । এর অর্থ হল এক্সআই একটি বিকল্প যা সম্ভবত অন্যান্য এইচটিটিপি ক্লায়েন্টগুলির মধ্যে ব্রাউজারগুলির দ্বারা বোঝার আশা করা যায়। দেখুন হাইপারটেক্সট ট্রান্সফার প্রোটোকল মাপদণ্ডগুলি (iana.org)


"গতির পক্ষে, এই সাধারণ বেঞ্চমার্কে, এক্সএমএল 21% ওভারহেড জেএসওনের উপর উপস্থাপন করে" - ব্যবহৃত নির্দিষ্ট পার্সারের উপর নির্ভর করে জেএসএন পার্সিংয়ের মধ্যে বিস্তর তফাত রয়েছে। কোনও নির্দিষ্ট পার্সার উদ্ধৃত করা প্রায় অর্থহীন। এক্সএমএল একই।
জেফ্রি ব্লাটম্যান

17

আমি এই নিবন্ধটি ডিজিটাল বাজারে পেয়েছি সত্যিই আকর্ষণীয়। নর্ম থেকে তাদের উদ্ধৃতি উদ্ধৃত:

জেএসওএন সম্পর্কে:

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

এক্সএমএল সম্পর্কে:

এক্সএমএল অনঠনযুক্ত ডেটার সম্পূর্ণ nessশ্বর্যের সাথে উল্লেখযোগ্যভাবে ভালভাবে ডিল করে। ওয়েব এপিআই ডিজাইনারদের একটি ক্যাডার দ্বারা মৃত্যুর আনন্দের সাথে উদযাপিত হলেও আমি এক্সএমএলের ভবিষ্যত নিয়ে মোটেও উদ্বিগ্ন নই।

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

আমি ব্যক্তিগতভাবে নর্মের সাথে একমত আমি মনে করি যে এক্সএমএল-এর বেশিরভাগ আক্রমণগুলি ওয়েব অ্যাপ্লিকেশনগুলি সাধারণত অ্যাপ্লিকেশনগুলির জন্য আসে, এবং সত্যই ইন্টিগ্রেশন ডেভেলপারদের থেকে নয়। তবে এটাই আমার মতামত! ;)


ভাল করা! যদি 80% সক্রিয় দেবগণ জাভাস্ক্রিপ্ট কীডিস হয় তবে 80% তাদের মতামতটি জেএসএন "আরও ভাল" বলে দেবে। তবে যে কেউ টাইপ করা ভাষাগুলি ব্যবহার করে সে জেএসওএন সম্পর্কে একটু আনন্দিত। { "foo": 42 }কি ধরণের এই বস্তু? তারপর টাইপ অভাব সমাধানের জন্য, এই শো আপ ভালো জিনিস: { "__type": "Bar", "foo": 42 }। বিপরীতে ধরনের XML- এর উপাদান নামের connotated করা যেতে পারে: <Bar><foo>42</foo></Bar>। কেবল লিস্প এবং জাভাস্ক্রিপ্টের ছেলেরা
জসন

15

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

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

আমার পরামর্শ হ'ল গেমসের মতো হালকা ডেটা-এক্সচেঞ্জের সাথে অ্যাপ্লিকেশনগুলির জন্য আপনার জেএসওএন ব্যবহার করা উচিত। যেহেতু আপনাকে ডেটা-প্রক্রিয়াকরণ সম্পর্কে সত্যই যত্ন নিতে হবে না, এটি খুব সহজ এবং দ্রুত।

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

আমি আপনাকে গতি এবং সুরক্ষার কারণে এক্সএমএল ব্যবহার করার পরামর্শ দিচ্ছি, তবে লাইটওয়েট স্টাফের জন্য জেএসএন।


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

পার্স করার জন্য জেএসএনকে খোলার দরকার নেই।
Yay295

7

জেএসএন সম্পর্কিত গুরুত্বপূর্ণ বিষয়টি হ'ল সুরক্ষার কারণে ডেটা স্থানান্তর এনক্রিপ্ট করা। সন্দেহ নেই যে জেএসএন তখন এক্সএমএল থেকে অনেক দ্রুত is আমি এক্সএমএল 100 মিমি নিতে দেখেছি যেখানে জেএসএন কেবল 60 মিমি নিয়েছে। JSON ডেটা ম্যানিপুলেট করা সহজ।


5
আমি সম্মত, JSON ডেটা ট্রান্সফারে যুদ্ধে জয়লাভ করে তবে এর উপাদানগুলির মার্কআপ, বৈধতা এবং সম্প্রসারণের অভাব রয়েছে। সে কারণেই গুগল ক্রলিং
সাইটম্যাপ.এক্সএমএল সাইটম্যাপ.জেসন

1
জেসন জনপ্রিয় হওয়ার আগে সাইটম্যাপ সংজ্ঞায়িত করা হয়েছিল যাতে এটি সর্বোত্তম উদাহরণ নয়। সাইটম্যাপকে সার্ভার টু সার্ভার হিসাবেও দেখা যায় যেখানে জেএসএনের চেয়ে এক্সএমএল বেশি জনপ্রিয়। (জেএসএন সত্যই কেবল জনপ্রিয় কারণ এটি জাভাস্ক্রিপ্টে কাজ করা সহজ))
ম্যাথু হোয়াইট

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