সবাই কেন jQuery এর জন্য XML ওভার জেএসএনকে বেছে নিচ্ছেন? [বন্ধ]


155

আমি ভেবেছিলাম এক্সএমএল অত্যন্ত বহনযোগ্য এবং একটি মিনি ডাটাবেস হিসাবে ব্যবহার করা যেতে পারে। আমি এক্সএমএল সর্বত্র ব্যবহৃত দেখেছি। এমনকি আমি বড় বড় সংস্থাগুলিও JSON এ স্যুইচ করতে দেখছি । এমনকি মাইক্রোসফ্ট জেএসএনের জন্য একীভূত সমর্থন করেছে। জেএসএনের সমস্ত হাইপ কি?


14
"প্রত্যেকে" এবং "সর্বত্র" এইরকম নিখুঁত পদ ...
ম্যাথু গ্রোভ

73
@ এলিবেইন এক্সএমএল আসলে চুষছে না। এটি খুব শক্তিশালী তবে রকেট লঞ্চের সাথে খরগোশের শিকারের মতো এটি সর্বদা সেরা বিকল্প নাও হতে পারে।
ড্যান

20
লোকেরা বর্তমানে যার জন্য এক্সএমএল ব্যবহার করছে তার বেশিরভাগই
জেএসএন

39
@ ডান যদি কেবল এক্সএমএল রকেট লঞ্চের সাথে খরগোশের শিকার করার মতোই মজা করে থাকে (সম্ভবত - আমি এটি নিজে চেষ্টা করে বলতে পারি না)
ডেভিড জনস্টোন

4
কারণ এটির 'ফ্যাট মুক্ত বিকল্প এক্সএমএল করতে' -json.org
DMIN

উত্তর:


226

মূলত জেএসএসন জাভাস্ক্রিপ্ট দ্বারা স্থানীয়ভাবে স্বীকৃত হওয়ায় এটি সত্যই হালকা ওজনের, স্বল্পমাত্রায় এবং অত্যন্ত বহনযোগ্য কারণ এটি কেবলমাত্র দুটি মৌলিক কাঠামোর উপর নির্ভর করে:

  • নাম / মান জোড়ের সংগ্রহ। বিভিন্ন ভাষায়, এটি কোনও অবজেক্ট, রেকর্ড, কাঠামো, অভিধান, হ্যাশ টেবিল, কীড তালিকা বা সহযোগী অ্যারে হিসাবে উপলব্ধি করা যায়।
  • একটি মান আদেশের তালিকা। বেশিরভাগ ভাষায় এটি অ্যারে, ভেক্টর, তালিকা বা ক্রম হিসাবে উপলব্ধি করা হয়।

3
+1 .. সত্যই .. অনেকগুলি আলাদা ডেটাটাইপ সমর্থন করে কাঁচা এক্সএমএল পাঠ্যের তুলনায় অনেক কিছু
শিনস

48
+1, বিশেষত যেহেতু জেএসএন পার্সিং এক্সএমএল পার্সিংয়ের তুলনায় অবিশ্বাস্যরূপে আরও দক্ষ, এমনকি টুকরোয়ালও। আপনার যত্ন নেওয়া ডেটাসেটগুলি একবার নির্দিষ্ট (এবং ভীতিজনকভাবে ছোট) প্রান্তিক ছাড়িয়ে গেলে পারফরম্যান্সের পার্থক্যটি লক্ষণীয়।
ম্যাগসোল

1
কেউ আমাকে ডেটা দেখায় যা বলে যে আধুনিক ব্রাউজারগুলিতে জেএসএন পার্সিং এক্সএমএল থেকে দ্রুত। : তাই এখানে একটি উত্তর অন্যথায় বলছেন stackoverflow.com/questions/4596465/...
HDave

136

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


31
এক্সএমএল আসলে কী দরকারী তা দেখানোর জন্য +1। খুব সহজেই লোকেরা এক্সএমএল ব্যবহার করে এমনকি তারা যখন খুব সহজ কিছু পেয়ে যায়।
ড্যানিয়েল প্রাইডেন

1
হ্যাঁ এখানে জিসিডি এবং ড্যানিয়েলের সাথে একমত হতে হবে। এক্সএমএল কেন কিছু জিনিসের জন্য এখনও বেশ ভাল মানের প্রতিক্রিয়া।
পরিচিতি

3
এক্সএমএল কীভাবে কম পঠনযোগ্য, আমি জেএসন পড়া প্রায় অসম্ভব বলে মনে করি যেখানে আমি মনে করি এক্সএমএল এর শ্রেণিবিন্যাস আরও অনেক বেশি বোধগম্য (অবশ্যই কিছুটা স্পষ্ট)। সম্ভবত আমি জেএসএন
কল্টন

আপনি যখন এক্সএমএল দিয়ে জিনিসগুলি করেন তখন নির্দিষ্ট জায়গাগুলি সমাধানের জন্য নেমস্পেসগুলি একটি এক্সএমএল সমাধান। আপনি যদি জসন ব্যবহার করছেন তবে জসন উপায়ে একই সমস্যাগুলি সমাধান করার জন্য একটি জসন সমাধান সন্ধান করুন। আমার কাছে নেমস্পেসের যুক্তিটি ঠিক "ওহ! তবে জসনের বৈশিষ্ট্য নেই!"

61

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

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

conditions = {
    'new_snow_24': 5.0,
    'new_snow_48': 8.5,
    'base_depth': 88.0,
    'comments': 'Deep and steep!',
    'chains_required': True,
}
return simplejson.dumps(conditions)   # Encode and dump `conditions` as a JSON string

জেএসএনের মাধ্যমে অনুবাদ করা হলে (পাইথনের জন্য 'সিম্পজসন' এর মতো একটি লাইব্রেরি ব্যবহার করে), ফলস্বরূপ জেএসওএন কাঠামোটি প্রায় অভিন্ন দেখায় (জেএসওন ব্যতীত, বুলিয়ানগুলি নিম্ন-বর্ণযুক্ত)।

কাঠামোটি ডিকোডিংয়ের জন্য কেবল একটি JSON পার্সার প্রয়োজন, এটি জাভাস্ক্রিপ্টের জন্য হোক বা দেশীয় আইফোন অ্যাপ্লিকেশনটির জন্য উদ্দেশ্য-সি বা সি # বা পাইথন ক্লায়েন্ট। ফ্লোটগুলি ফ্লোট হিসাবে ব্যাখ্যা করা হবে, স্ট্রিংগুলির মতো স্ট্রিংগুলি এবং বুলিয়ান হিসাবে বুলেটিয়ান। পাইথনের 'সিম্পলজসন' লাইব্রেরিটি ব্যবহার করে, একটি simplejson.loads(some_json_string)বিবৃতি আমাকে একটি সম্পূর্ণ ডেটা কাঠামো ফিরিয়ে আনবে যেমন আমি ঠিক উপরের উদাহরণে তৈরি করেছি।

যদি আমি এক্সএমএল লিখি, আমাকে উপাদান বা বৈশিষ্ট্যগুলি করবেন কিনা তা সিদ্ধান্ত নিতে হবে। নিম্নলিখিত দুটিই বৈধ:

<conditions>
    <new-snow-24>5</new-snow-24>
    <new-snow-48>8.5</new-snow-48>
    <chains-required>yes</chains-required>
    <comments>deep and steep!</comments>
</conditions>

<conditions newSnow24="5" newSnow48="8.5" chainsRequired="yes">
   <comments>deep and steep!</comments>
</conditions>

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

সংক্ষিপ্তসারটি হ'ল এটি খুব সহজ এবং জেএসএনে ডেটা এনকোড করা এবং বিশেষত দ্রুত ইন্টারচেঞ্জের জন্য ডিকোড করতে আরও অনেক বেশি সরাসরি। এটি জাভাস্ক্রিপ্ট / জেএসএন-তে অন্তর্নির্মিত বেসিক ডেটা টাইপ (তালিকাগুলি, অভিধান ইত্যাদি) হিসাবে গতিশীল ভাষার পটভূমি থেকে আগত ব্যক্তিদের জন্য আরও বেশি প্রয়োগ করতে পারে পাইথন, পার্ল, রুবি ইত্যাদিতে একই বা অনুরূপ ডেটা ধরণের সরাসরি মানচিত্র map


34

বেশিরভাগ ব্যবহারের ক্ষেত্রে জেএসএনের পারফরম্যান্স এক্সএমএল থেকে খুব বেশি আলাদা নয়, গভীর নীড়ের কাঠামোর জন্য জেএসওএন ভালভাবে উপযুক্ত এবং পাঠযোগ্য নয় ... আপনি]]]}] যা ডিবাগিংকে কঠিন করে তোলে


31

এটি এক্সএমএলের তুলনায় লাইটওয়েট। আপনার যদি স্কেল করতে হয় তবে আপনার ব্যান্ডউইথের প্রয়োজনীয়তা হ্রাস করুন!

JSON এর সাথে তুলনা করুন

 [
      {
           color: "red",
           value: "#f00"
      },
      {
           color: "green",
           value: "#0f0"
      },
      {
           color: "blue",
           value: "#00f"
      },
      {
           color: "cyan",
           value: "#0ff"
      },
      {
           color: "magenta",
           value: "#f0f"
      },
      {
           color: "yellow",
           value: "#ff0"
      },
      {
           color: "black",
           value: "#000"
      }
 ]

এক্সএমএলে:

 <colors>
      <color >
           <name>red</name>
           <value>#f00</value>
      </color>
      <color >
           <name>green</name>
           <value>#0f0</value>
      </color>
      <color >
           <name>blue</name>
           <value>#00f</value>
      </color>
      <color >
           <name>cyan</name>
           <value>#0ff</value>
      </color>
      <color >
           <name>magenta</name>
           <value>#f0f</value>
      </color>
      <color >
           <name>yellow</name>
           <value>#ff0</value>
      </color>
      <color >
           <name>black</name>
           <value>#000</value>
      </color>
 </colors>

23
শুধু ছোট নয়, তবে আরও মানববান্ধব। এক্সএমএল দেখতে কম্পিউটারের মতো কথা বলার মানুষের দুর্বল প্রয়াস বলে মনে হচ্ছে।
deft_code

15
আপনার এক্সএমএল সাধারণ প্রকারের (নাম / মান) উপাদানের পরিবর্তে XML wtih বৈশিষ্ট্যগুলি হ্রাস করতে পারে
ম্যাথু হোয়াইট

4
@ ম্যাথু: হ্যাঁ, তবে এটি অসম্পূর্ণ এবং কুরুচিপূর্ণ দেখায়। এবং আপনার এখনও উপাদানটির জন্য ওপেন / ক্লোজ ট্যাগ দরকার। জেএসএন (সর্বোত্তম) আপনার যে ট্যাগটি ব্যবহার করতে হবে তা সংখ্যা অর্ধেক করে।
রন গেজম্যান

2
মার্কের উদাহরণ দেখুন। আপনি দেখতে পাচ্ছেন না যে আপনার সংস্করণটি তার চেয়ে পড়া সহজ। stackoverflow.com/questions/1743532/…
ম্যাথু হোয়াইট

1
পার্থক্য দৈর্ঘ্য আমার কাছে এত বড় বলে মনে হয় না
vtd-xML-লেখক

28

আমার নিজের ব্যক্তিগত অভিজ্ঞতা থেকে একটি উপাখ্যান:

আমি প্রথমে এক্সএমএল-এর ডেটা দিয়ে একটি ছোট জাভাস্ক্রিপ্ট ডিরেক্টরি লিখেছি এবং তারপরে এটি জেএসওএন ব্যবহার করতে অভিযোজিত করেছি যাতে আমি তাদের পাশাপাশি চলতে পারি এবং ফায়ারব্যাগের সাথে গতির তুলনা করতে পারি। জেএসএন প্রায় 3 গুণ দ্রুত গতিতে শেষ হয়েছে (350-0000 এমএস বনাম 1200-1300 এমএসে সমস্ত ডেটা প্রদর্শন করার জন্য)। এছাড়াও, অন্যরা যেমন উল্লেখ করেছে, JSON চোখের দিকে অনেক সহজ এবং লেনার মার্কআপের কারণে ফাইলের আকার 25% ছোট ছিল।


2
যদি প্রত্যেকে এই মানদণ্ডগুলি তৈরি করে থাকে তবে আমাদের তবুও তর্ক করার কিছু নেই।
এইচডিভি

20
 <colors>
      <color name='red'     value='#f00'/>
      <color name='green'   value='#0f0'/>
      <color name='blue'    value='#00f'/>
      <color name='cyan'    value='#0ff'/>
      <color name='magenta' value='#f0f'/>
      <color name='yellow'  value='#ff0'/>
      <color name='black'   value='#000'/>
 </colors>

বৈশিষ্ট্য সহ, এক্সএমএল দুর্দান্ত। তবে কোনও কারণে, ঘরে তৈরি এক্সএমএল সাধারণত 100% উপাদান এবং কুরুচিপূর্ণ হয়।


2
এটি এখনও জেএসএএন উদাহরণের চেয়ে আরও অ-সাদা অংশের অক্ষর। এবং পার্সিং বৈশিষ্ট্যগুলি এক্সএমএলে আরও বিরক্তিকর হতে পারে।
jmucchiello

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

18

জাভাস্ক্রিপ্ট দ্বারা সহজ ব্যবহারের অন্যতম কারণ হতে পারে ..


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

10

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

খুব ভাল উদাহরণ হ'ল জেএসওএন-পি। কলব্যাক ফাংশন কলটিতে মোড়ানো ওয়েবসার্ভিস থেকে আপনি ডেটা ফিরে পেতে পারেন, যেমন my_callback({"color": "blue", "shape":"square"});গতিশীলভাবে উত্পন্ন <script>ট্যাগের অভ্যন্তরে যাতে সরাসরি ফাংশনে ডেটা গ্রাস করা যায় my_callback()। এক্সএমএল ব্যবহার করে এই সুবিধার কাছাকাছি যাওয়ার কোনও উপায় নেই।

এক্সএমএল হ'ল বড় নথির পছন্দের বিন্যাস হবে, যেখানে আপনার এক্সএসএলটি ব্যবহার করে একাধিক ফর্ম্যাটে ডেটা পৃষ্ঠা সরবরাহ করার কাঠামো রয়েছে। এক্সএমএল অন্যান্য ব্যবহারের মধ্যে পাঠযোগ্যতার জন্য অ্যাপ্লিকেশন কনফিগারেশন ফাইলগুলির সাথেও ব্যবহার করা যেতে পারে।


8

এখানে কেউ এক্সএমএল-এর প্রধান সুবিধাটি উল্লেখ করেনি: বৈধকরণের নিয়ম (ডিটিডি, এক্সএসডি)। আমার সিদ্ধান্তগুলি, উভয় ব্যবহার করে:

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

অবশ্যই, জসন-স্কিমা তৈরি হচ্ছে তবে আপনি এটির জন্য অন্তর্নির্মিত সমর্থন পাবেন না।

আমি দুজনেরই ফ্যানবয়, তাদের আলাদা আলাদা শক্তি আছে।


6

এখন যেহেতু বেশিরভাগ ভাষার জন্য জেএসওএন এনকোডার এবং ডিকোডার রয়েছে, সেখানে জেএসওএন ব্যবহার করার জন্য কোনও কারণ নেই যেখানে এটি বোধগম্য হয় (এবং এটি সম্ভবত এক্সএমএলের 90% ব্যবহারের ক্ষেত্রে)।

এমনকি স্কিমার পরিবর্তনগুলি আরও সহজ করার জন্য JSON স্ট্রিংগুলি বড় এসকিউএল ডাটাবেসে ব্যবহৃত হচ্ছে শুনেছি।


5

মোটামুটি সত্যই, JSON এবং XML এর মধ্যে এতটা আলাদা নয় যে তারা সমস্ত ধরণের ডেটা উপস্থাপন করতে পারে। যাইহোক, এক্সএমএল JSON এর চেয়ে সিন্থেটিকভাবে বড় এবং এটি এটিকে JSON এর চেয়ে ভারী করে তোলে।


1
আপনার উত্তরটি বিশেষভাবে অনুপ্রেরণামূলক খুঁজে পেল না, তবে এটি ভুল হয়নি তাই ডাউন ভোটকে অন্যায় বলে মনে হয়েছিল।
deft_code

X1 টি জেএসএনের যথাযথ সুপারস্টার হওয়ার উপায়ে ব্যবহার করা যেতে পারে তা উল্লেখের জন্য +1 ।
সেবাস্তিয়ান

5

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


আইটেমগুলি বিশ্লেষণ করার প্রয়োজনীয়তা কোনও প্রতিবন্ধকতা মেলে না to
রব

9
একটি প্রতিবন্ধকতা মেলে না যখন ধারণাগুলি অবজেক্ট-রিলেশনাল ম্যাপিংয়ের মতো ধারণাগুলি এক ফর্ম্যাট থেকে অন্য ফর্ম্যাটে পরিষ্কারভাবে ম্যাপ করে না। কিছু জিনিস অবজেক্টের সাথে প্রকাশ করা খুব সহজ তবে এসকিউএল সহ শক্ত অন্য কিছুগুলি এসকিউএল ব্যবহার করে প্রকাশ করা সহজ, তবে অবজেক্টের শ্রেণিবিন্যাসগুলিতে সেগুলি স্পষ্টরূপে প্রকাশ করতে খুব কষ্ট হয়। এক্সএমএল এবং জেএসএনের সাথে, একজনের কাছে অন্যটির থেকে অর্থটি পেতে প্রায়শই আরও কিছুটা কাজ প্রয়োজন হয় তবে এটি পার্সিং সরঞ্জামগুলির উপর নির্ভর করে। ভাব প্রকাশ (বেশিরভাগ ক্ষেত্রে) একই রকম is
jcdyer

4

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

এক্সএমএল এখনও দুর্দান্ত। এক্সএমএলের তুলনায় জেএসওনের কেবলমাত্র "সর্বশেষ এবং দুর্দান্ত"।


1
এবং আমি বিশ্বাস করি যে জাভাস্ক্রিপ্টের নতুন সংশোধনীগুলি "নিরাপদ" (বিভক্ত মুক্ত) অন্তর্নির্মিত জেএসএন এনকোডার এবং ডিকোডারগুলিকে অন্তর্ভুক্ত করতে শুরু করেছে।
নসরেডনা

4

জাভাস্ক্রিপ্ট দ্বারা সহজে পার্স করা হয়েছে এবং এটি লাইটওয়েট (JSON এ থাকা একটি দস্তাবেজ একটি এক্সএমএল নথির চেয়ে ছোট যা একই ডেটা রয়েছে))


3

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

আকার বনাম পারফরম্যান্স

আপনি যদি কোনও ব্রাউজারে থাকেন তবে JSON এটিকে আরও সহজ, আরও কমপ্যাক্ট এবং আরও গুরুত্বপূর্ণভাবে স্থানীয়ভাবে সমর্থিত হিসাবে সিরিয়ালায়িত / ডিসিরিয়ালাইজড করা দ্রুত। আমার কাছে কয়েকটি উত্তর- পশ্চিম ডাটাবেস বেঞ্চমার্ক রয়েছে যা উপলব্ধ বিভিন্ন সিরিয়ালাইজারগুলির মধ্যে আকার এবং গতির তুলনা করে। বেস ক্লাস লাইব্রেরিতে মাইক্রোসফ্টের এক্সএমএল ডেটা কন্ট্রাক্ট সিরিয়ালাইজারটি তাদের জেএসওনের চেয়ে 30% এর বেশি দ্রুত। যদিও মাইক্রোসফ্ট তাদের এক্সএমএল সিরিয়ালাইজারটিতে রাখার প্রচেষ্টার সাথে এর আরও বেশি সম্পর্ক রয়েছে কারণ আমি একটি জসনসিরাইজার তৈরি করতে সক্ষম হয়েছি যা জেএসওনের 2.6x বেশি তাদের এক্সএমএল একের দ্রুত । মানদণ্ডের উপর ভিত্তি করে পে-লোডের ক্ষেত্রে এটি দেখতে দেখতে দেখতে XML প্রায় 2x এর বেশিJSON এর আকার। তবে যদি আপনার এক্সএমএল পেলোড একই ডকুমেন্টের মধ্যে বিভিন্ন ভিন্ন নেমস্পেস ব্যবহার করে তবে তা দ্রুত ফুরিয়ে যেতে পারে।


2

এক্সএমএল বেশিরভাগ পরিস্থিতিতে স্ফীত হয়ে থাকে। জেএসএন ব্লাট ছাড়াই আপনাকে বেশিরভাগ সুবিধা দেয়।


1

এখানে উল্লেখ করা ব্যতীত অন্য একটি বড় সুবিধা। একই ডেটার জন্য, এটি এক্সএমএল ফাইল হিসাবে উপস্থাপনের একাধিক উপায় রয়েছে তবে জেএসএনের সাথে কেবল একটি উপায়, অস্পষ্টতা দূর করে :)


2
{"colors":["red","green","blue"],"systems":["windows","mac"]}বনাম{"entries":[{"type":"color","value":"red"},{"type":"system","value":"mac"}]}
জেরোম বাম

0

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

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

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

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


আমি মনে করি প্রশ্নটি নিয়ে কিছু বিভ্রান্তি ছিল এবং এই উত্তরে অনেক জল্পনা রয়েছে।
marr75

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