javascript - যবহ - স্ক্রিপ্টিং ভাষা কি




জাভাস্ক্রিপ্ট মধ্যে পার্স JSON? (11)

এই প্রশ্নটি ইতিমধ্যে একটি উত্তর আছে:

আমি জাভাস্ক্রিপ্ট একটি JSON স্ট্রিং পার্স করতে চান। প্রতিক্রিয়া মত কিছু

var response = '{"result":true,"count":1}';

আমি কিভাবে মূল্য result পেতে এবং এই থেকে count করতে পারেন?


JSON.parse () একটি JSON অবজেক্টে ফাংশনে প্রেরিত কোনও JSON স্ট্রিংকে রূপান্তরিত করে।

আরও ভাল বোঝার জন্য, আপনার ব্রাউজারের এলিমেন্টটি খুলতে F12 টিপুন এবং নিম্নোক্ত কমান্ডগুলি লিখতে কনসোলটিতে যান:

var response = '{"result":true,"count":1}'; // Sample JSON object (string form)
JSON.parse(response); // Converts passed string to a JSON object.

এখন কমান্ড চালান:

console.log(JSON.parse(response));

আপনি অবজেক্ট হিসাবে ফলাফল পাবেন {ফলাফল: সত্য, গণনা: 1}।

ঐ বস্তুটি ব্যবহার করার জন্য, আপনি এটি পরিবর্তনশীলকে বরাদ্দ করতে পারেন, আসুন obj বলুন:

var obj = JSON.parse(response);

এখন obj এবং dot (।) অপারেটর ব্যবহার করে আপনি JSON অবজেক্টের বৈশিষ্ট্যগুলি অ্যাক্সেস করতে পারেন।

কমান্ড চালানোর চেষ্টা করুন

console.log(obj.result);

অসংখ্য অন্যদের দ্বারা উল্লেখ করা হয়েছে, অধিকাংশ ব্রাউজার JSON.parse এবং JSON.stringify সমর্থন করে।

এখন, আমি এটি যোগ করতে চাই যে যদি আপনি AngularJS ব্যবহার করেন (যা আমি অত্যন্ত সুপারিশ করি) তবে এটি আপনার প্রয়োজনীয় কার্যকারিতাও সরবরাহ করে:

var myJson = '{"result": true, "count": 1}';
var obj = angular.fromJson(myJson);//equivalent to JSON.parse(myJson)
var backToJson = angular.toJson(obj);//equivalent to JSON.stringify(obj)

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


আপনি যদি ডোজ টুলকিট ব্যবহার করেন:

require(["dojo/json"], function(JSON){
    JSON.parse('{"hello":"world"}', true);
});

আপনি যদি jQuery ব্যবহার করেন তবে এটি সহজ:

var response = '{"result":true,"count":1}';
var obj = $.parseJSON(response);
alert(obj.result); //true
alert(obj.count); //1

আপনি যদি পুরোনো ব্রাউজারগুলির জন্য JSON 3 ব্যবহার করতে চান তবে আপনি এটির সাথে শর্তযুক্তভাবে লোড করতে পারেন:

<script>
    window.JSON || 
    document.write('<script src="//cdnjs.cloudflare.com/ajax/libs/json3/3.2.4/json3.min.js"><\/scr'+'ipt>');
</script>

এখন কোনও ক্লায়েন্ট চলমান ব্রাউজারের ব্যাপার না থাকলেও standard window.JSON অবজেক্ট আপনার কাছে উপলব্ধ।


আমি JSON.parse(myObject) কাজ করবে চিন্তা। কিন্তু ব্রাউজারের উপর নির্ভর করে, এটি eval('('+myObject+')') ব্যবহার করে মূল্যবান হতে পারে eval('('+myObject+')') । JSON- এ মাল্টি-লেভেলের তালিকাটি দেখার জন্য আমি কেবলমাত্র প্রস্তাবটি সুপারিশ করতে পারি।


নিম্নলিখিত উদাহরণটি পরিষ্কার করে দেবে:

var jsontext   = '{"name":"x","age":"11"}';
var getContact = JSON.parse(jsontext);
document.write(getContact.name + ", " + getContact.age);

// Output: x, 11

অথবা

আপনি eval ফাংশন ব্যবহার করতে পারেন। নিম্নলিখিত উদাহরণ eval ফাংশন ব্যবহার করা হয়:

var jsontext   = '{"name":"x","age":"11"}';
var getContact = eval('(' + jsontext + ')');
document.write(getContact.name + ", " + getContact.age);

// Output: x, 11

যেহেতু JSON.parse ফাংশনটি আরো নিরাপদ এবং eval ফাংশন থেকে দ্রুত সঞ্চালিত হয়, তাই আমি JSON.parse ফাংশন ব্যবহার করার জন্য আপনাকে সুপারিশ করি।


যদি আপনি কোনও বাইরের সাইট থেকে এটি পেয়ে থাকেন তবে এটি jQuery এর getJSON ব্যবহার করতে সহায়ক হতে পারে। যদি এটি একটি তালিকা হয় তবে আপনি এটির মাধ্যমে $

$.getJSON(url, function (json) {
    alert(json.result);
    $.each(json.list, function (i, fb) {
        alert(fb.result);
    });
});

লাইব্রেরি ব্যবহার না করে আপনি eval ব্যবহার করতে পারেন - শুধুমাত্র একবার ব্যবহার করা উচিত। যদিও এটি একটি লাইব্রেরি ব্যবহার নিরাপদ।

যেমন ...

var response = '{"result":true , "count":1}';

var parsedJSON = eval('('+response+')');

var result=parsedJSON.result;
var count=parsedJSON.count;

alert('result:'+result+' count:'+count);

সর্বাধিক ব্রাউজারগুলি JSON.parse() , যা ECMA-262 5th সংস্করণ (জাভাস্ক্রিপ্ট ভিত্তিক স্পেসিফিকেশন JSON.parse() সংজ্ঞায়িত করা হয়েছে সমর্থন করে। এর ব্যবহার সহজ:

var json = '{"result":true,"count":1}',
    obj = JSON.parse(json);

alert(obj.count);

/* or ES6 */

const json = '{"result":true,"count":1}' || {};
const { result, count } = JSON.parse(json);
alert(result);
alert(count);

ব্রাউজারগুলির জন্য আপনি json2.js ব্যবহার করে এটি প্রয়োগ করতে পারবেন না।

মতামত হিসাবে উল্লেখ করা হয়েছে, যদি আপনি ইতিমধ্যে jQuery ব্যবহার করছেন, তবে একটি $.parseJSON ফাংশন আছে যা JSON.parse মানচিত্রে উপলব্ধ থাকে বা পুরানো ব্রাউজারগুলিতে JSON.parse একটি ফর্ম। যাইহোক, এটি অতিরিক্ত, অপ্রয়োজনীয় চেকগুলি যা JSON.parse দ্বারা সঞ্চালিত হয়, তাই JSON.parse সেরা গোলাকার পারফরম্যান্সের জন্য আমি এটি ব্যবহার করে সুপারিশ করব:

var json = '{"result":true,"count":1}',
    obj = JSON && JSON.parse(json) || $.parseJSON(json);

এটি স্থানীয় JSON.parse ফাংশনটি পাস করার আগে স্ট্রিংয়ে স্যানিটি চেকগুলি সম্পাদন করার পরিবর্তে আপনি অবিলম্বে স্থানীয় JSON.parse ব্যবহার করে নিশ্চিত করবেন।


parse() পদ্ধতি ব্যবহার করে সবচেয়ে সহজ উপায়:

var response = '{"a":true,"b":1}';
var JsonObject= JSON.parse(response);

মানগুলি কীভাবে পেতে হয় তার একটি উদাহরণ:

var myResponseResult = JsonObject.a;
var myResponseCount = JsonObject.b;






parsing