জাভাস্ক্রিপ্টে JSON স্ট্রিং কীভাবে তৈরি করবেন?


97
window.onload = function(){
    var obj = '{
            "name" : "Raj",
            "age"  : 32,
            "married" : false
            }';

    var val = eval('(' + obj + ')');
    alert( "name : " + val.name + "\n" +
           "age  : " + val.age  + "\n" +
           "married : " + val.married );

}

এর মতো কোনও কোডে আমি জেএসএন স্ট্রিংটি প্রায় ঘুরে দেখার জন্য চেষ্টা করছি। এটি ত্রুটি ছুঁড়েছে, তবে আমি বিবাহিত সমস্ত নাম, বয়স, একক লাইনে রেখে দিলে (লাইন 2) এটি হয় না। সমস্যা কি?


4
এই উত্তর দেখুন stackoverflow.com/questions/3904269/...
powtac

উত্তর:


85

জাভাস্ক্রিপ্ট একাধিক লাইনে স্ট্রিংগুলি পরিচালনা করে না।

আপনার সেগুলি বোঝাতে হবে:

var obj = '{'
       +'"name" : "Raj",'
       +'"age"  : 32,'
       +'"married" : false'
       +'}';

আপনি ES6 এবং এর উপরের টেম্পলেট লিটারালগুলিও ব্যবহার করতে পারেন: ( ডকুমেন্টেশনের জন্য এখানে দেখুন )

var obj = `{
           "name" : "Raj",
           "age" : 32,
           "married" : false,
           }`;

13
বা আক্ষরিক প্রতিটি লাইনের শেষে একটি put রাখুন।
ফ্রেগজ

4
মাল্টি-লাইন স্ট্রিংয়ের জন্য, একক বা ডাবল উদ্ধৃতিগুলির পরিবর্তে, আপনি use (ব্যাক-টিক অক্ষরটি # 1 কী এর বাম দিকে) ব্যবহার করতে পারেন। এগুলিকে বলা হয় 'টেম্পলেট আক্ষরিক'।
নীল

5
অবশ্যই: এই উত্তরের জন্য নিষ্পত্তি করবেন না এবং অন্যের দিকে তাকাবেন না।
এএসটিআর

4
টেমপ্লেট লিটারেলগুলি ইসিএমএ স্ক্রিপ্ট 2015 স্ট্যান্ডার্ড। এই প্রশ্নোত্তর ইতিমধ্যে 2012 এর। তবে আমি এটিকে সম্পাদনা করব :)
বারদিয়ার

সত্যি? স্ক্র্যাচ থেকে স্ট্রিং কনটেনটেশন জেএসএন তৈরির সর্বোত্তম উপায়? আমি মনে করি অন্য উত্তরটি গ্রহণযোগ্য উত্তর হওয়া উচিত।
rory.ap 20

270

আমি যেভাবে এটি করি তা হ'ল:

   var obj = new Object();
   obj.name = "Raj";
   obj.age  = 32;
   obj.married = false;
   var jsonString= JSON.stringify(obj);

আমার ধারণা, এইভাবে ত্রুটির সম্ভাবনা হ্রাস করতে পারে।


কোডটি দেখতে কেমন লাগবে যদি আপনি গাছটিকে গভীরতা দিতে চান? নামের জন্য আমি নাম.পরের নাম এবং প্রথম নাম দিতে চাই। আমার নামটি ভ্যার হিসাবে সংজ্ঞায়িত করতে হবে?
আমির

62

JSON.stringify ফাংশনটি আপনার জসন বস্তুকে স্ট্রিংয়ে পরিণত করবে:

var jsonAsString = JSON.stringify(obj);

ব্রাউজার যদি এটি প্রয়োগ না করে ( আই 6 / আই 7 ), JSON2.js স্ক্রিপ্টটি ব্যবহার করুন । এটি নিরাপদ যেমন এটি বিদ্যমান থাকলে দেশীয় বাস্তবায়ন ব্যবহার করে।


23

এটি বেশ সহজ এবং সহজ হতে পারে

var obj = new Object();
obj.name = "Raj";
obj.age = 32;
obj.married = false;

//convert object to json string
var string = JSON.stringify(obj);

//convert string to Json Object
console.log(JSON.parse(string)); // this is your requirement.

16

ব্যবহার JSON.stringify:

> JSON.stringify({ asd: 'bla' });
'{"asd":"bla"}'

আপনার যদি পুরানো ব্রাউজারগুলি সমর্থন করার প্রয়োজন হয় তবে json2.jsও দেখুন ।
ডগলাস

হ্যাঁ, এখানে তার গিটহাব প্রকল্পের লিঙ্কটি রয়েছে: github.com/douglascrockford
ডগলাস

@ নেপসডোটিন ডগলাস এসও-তে ডগলাস ক্রকফোর্ড নয়, " তাঁর গিটহাবের কাছে"
টিমবোল্লা

আহ, মিস করলাম , না, আমি ক্রকফোর্ড নই !
ডগলাস

6

আমি মনে করি এইভাবে আপনাকে সাহায্য করে ...

var name=[];
var age=[];
name.push('sulfikar');
age.push('24');
var ent={};
for(var i=0;i<name.length;i++)
{
ent.name=name[i];
ent.age=age[i];
}
JSON.Stringify(ent);

-6

json স্ট্রিংগুলির মধ্যে লাইন ব্রেক থাকতে পারে না। আপনি এটা সব এক লাইন করতে হবে চাই: {"key":"val","key2":"val2",etc....}

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


8
জেএসএনের লাইন ব্রেক হতে পারে তবে জাভাস্ক্রিপ্টের স্ট্রিং আক্ষরিক বাক্য গঠন করতে পারে না।

ইন্টিরিয়ালি একটি স্ট্রিংয়ের মধ্যে, হ্যাঁ, তবে কী / মান জোড়ার মধ্যে নয়।
মারক বি

4
আমি মনে করি আপনি জাভাস্ক্রিপ্টের স্ট্রিং আক্ষরিক সিনট্যাক্সকে বিভ্রান্ত করছেন যা কোনও আনসকেপড নিউলাইন চরিত্র এবং জেএসওন মার্কআপ ধারণ করতে পারে না। জেএসএন মার্কআপ অবশ্যই লাইন বিরতি থাকতে পারে।

4
... আপনার প্রশ্নের কোডটি jsonlint.com এ আটকান (অবশ্যই ইত্যাদি না .... অবশ্যই) । বৈধতা ক্লিক করার পরে, আপনি দেখতে পাবেন যে এটি আসলে নতুন লাইনগুলি সন্নিবেশ করায় এটি প্রিন্ট করে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.