জেএসএন ওয়েবসাইটে স্টেট মেশিন ডায়াগ্রাম অনুসারে , কেবলমাত্র পালিয়ে যাওয়া ডাবল-কোট অক্ষরের অনুমতি রয়েছে, একক-উদ্ধৃতি নয়। একক উদ্ধৃতি অক্ষরগুলি এড়িয়ে যাওয়ার দরকার নেই:
আপডেট - যারা আগ্রহী তাদের আরও তথ্য:
ডগলাস ক্রকফোর্ড সুনির্দিষ্টভাবে বলেন না যে JSON স্পেসিফিকেশন কেন স্ট্রিংয়ের মধ্যে পালিয়ে যাওয়া একক উদ্ধৃতিগুলিকে অনুমতি দেয় না। তবে জাভাস্ক্রিপ্টের পরিশিষ্ট ই জেএসএন-এর আলোচনার সময় : দ্য গুড পার্টস , তিনি লিখেছেন:
জেএসএনের ডিজাইন লক্ষ্যগুলি ছিল ন্যূনতম, পোর্টেবল, পাঠ্য এবং জাভাস্ক্রিপ্টের একটি উপসেট। আন্তঃসংযোগ স্থাপনের জন্য আমাদের যত কম সম্মত হওয়া দরকার, আমরা তত সহজেই আন্তঃসংযোগ করতে পারি can
সুতরাং সম্ভবত তিনি কেবল স্ট্রিংগুলিকে ডাবল-কোট ব্যবহার করে সংজ্ঞায়িত করার অনুমতি দেওয়ার সিদ্ধান্ত নিয়েছেন কারণ এটি সমস্ত কম JSON বাস্তবায়নে সম্মত হতে হবে এটি একটি কম নিয়ম। ফলস্বরূপ, স্ট্রিংয়ের মধ্যে একটি একক উদ্ধৃতি চরিত্রের জন্য ঘটনাক্রমে স্ট্রিংটি সমাপ্ত করা অসম্ভব, কারণ সংজ্ঞা অনুসারে একটি স্ট্রিং কেবল একটি ডাবল-উদ্ধৃতি চরিত্রের মাধ্যমেই শেষ করা যায়। সুতরাং আনুষ্ঠানিক নির্দিষ্টকরণে একটি একক উদ্ধৃতি চরিত্রের পালানোর অনুমতি দেওয়ার প্রয়োজন নেই।
একটি সামান্য বিট গভীর খনন, Crockford এর
org.json জাভা জন্য তাদেরকে JSON বাস্তবায়ন আরো অনুমোদনযোগ্য এবং
না একক উদ্ধৃতি অক্ষর মঞ্জুরি দিন:
টসস্ট্রিং পদ্ধতি দ্বারা উত্পাদিত পাঠগুলি জেএসএন সিনট্যাক্স নিয়মের সাথে কঠোরভাবে মেনে চলে। নির্মাতারা যে গ্রন্থগুলিকে গ্রহণ করবেন তাতে তারা ক্ষমা করে দিচ্ছে:
...
- স্ট্রিংগুলি '(একক উদ্ধৃতি) দিয়ে উদ্ধৃত করা যেতে পারে।
এই দ্বারা নিশ্চিত করা হয় JSONTokener সোর্স কোড। nextString
পদ্ধতি পলান একক উদ্ধৃতি অক্ষর এবং মাত্র ডাবল উদ্ধৃতি অক্ষর মত একইরূপে তাদের স্বীকার করে:
public String nextString(char quote) throws JSONException {
char c;
StringBuffer sb = new StringBuffer();
for (;;) {
c = next();
switch (c) {
...
case '\\':
c = this.next();
switch (c) {
...
case '"':
case '\'':
case '\\':
case '/':
sb.append(c);
break;
...
পদ্ধতির শীর্ষে একটি তথ্যমূলক মন্তব্য:
আনুষ্ঠানিক JSON ফর্ম্যাটটি একক উদ্ধৃতিতে স্ট্রিংগুলিকে মঞ্জুরি দেয় না, তবে একটি বাস্তবায়ন সেগুলিকে গ্রহণ করার অনুমতি দেয়।
সুতরাং কিছু বাস্তবায়ন একক উদ্ধৃতি গ্রহণ করবে - তবে আপনার উপর নির্ভর করা উচিত নয়। অনেক জনপ্রিয় বাস্তবায়ন এক্ষেত্রে বেশ সীমাবদ্ধ এবং জেএসওএনকে প্রত্যাখ্যান করবে যাতে একক উদ্ধৃত স্ট্রিং এবং / অথবা পালানো একক উদ্ধৃতি রয়েছে।
শেষ পর্যন্ত মূল প্রশ্নের সাথে এটি বেঁধে রাখতেjQuery.parseJSON
প্রথমে ব্রাউজারের নেটিভ জেএসএন পার্সার বা jos2.js এর মতো লোড লাইব্রেরি যেখানে প্রযোজ্য তা ব্যবহার করার চেষ্টা করুন (যা সাইড নোটটিতে লাইব্রেরিতে jQuery যুক্তিটি JSON
সংজ্ঞায়িত না হলে ভিত্তিক করা হয় ) । সুতরাং jQuery কেবল যে অন্তর্নিহিত বাস্তবায়ন হিসাবে অনুমতিযোগ্য হতে পারে:
parseJSON: function( data ) {
...
// Attempt to parse using the native JSON parser first
if ( window.JSON && window.JSON.parse ) {
return window.JSON.parse( data );
}
...
jQuery.error( "Invalid JSON: " + data );
},
যতদূর আমি জানি এই বাস্তবায়নগুলি কেবলমাত্র অফিসিয়াল জেএসএন স্পেসিফিকেশন মেনে চলে এবং একক উদ্ধৃতি গ্রহণ করে না, তাই jQueryও নয়।