নিরাপদে কোনও জেএসএন স্ট্রিংকে কোনও বস্তুতে পরিণত করা


1334

JSON ডেটার একটি স্ট্রিং দেওয়া, আমি কীভাবে নিরাপদে সেই স্ট্রিংটিকে একটি জাভাস্ক্রিপ্ট অবজেক্টে রূপান্তর করতে পারি?

অবশ্যই আমি এই জাতীয় কিছু দিয়ে অনিরাপদভাবে এটি করতে পারি:

var obj = eval("(" + json + ')');

তবে এটি আমাকে অন্য কোডযুক্ত জেএসওএন স্ট্রিংয়ের জন্য দুর্বল করে দেয়, যা এটি সহজভাবে বর্ণনা করা খুব বিপজ্জনক বলে মনে হয়।


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

19
ঠিক আছে, এখন এটি 2014 এবং আপনার evalকোনও জেএসএন স্ট্রিং পার্স করার জন্য কখনই ব্যবহার করা উচিত নয় কারণ আপনি আপনার কোডটি "কোড ইনজেকশন" -র কাছে প্রকাশ করবেন। JSON.parse(yourString)পরিবর্তে ব্যবহার করুন।
ড্যানিয়েল

JSON ডেটা কি আক্ষরিক?
শানচিহু

@ শানেচিহু: আপনি যদি কোনও স্ক্যালার ডেটা টাইপ বোঝাতে চান তবে হ্যাঁ। এটিতে কী-মান বাক্য গঠন সহ কেবল একটি স্ট্রিং।
0zkr পিএম

উত্তর:


1959

JSON.parse(jsonString) আপনি একটি যুক্তিসঙ্গতভাবে আধুনিক ব্রাউজারের গ্যারান্টি দিতে পারেন তাই খাঁটি জাভাস্ক্রিপ্টের পদ্ধতি approach


74
আমি পুরোপুরি নিশ্চিত যে এটি নোড.জেএস এর জন্য নিরাপদ
স্টিফেন

76
@vsync আপনি কি বুঝতে পেরেছেন যে এটি কেবলমাত্র বিশুদ্ধ জাভাস্ক্রিপ্টের উত্তর ... আপনি জাভাস্ক্রিপ্ট ট্যাগের বিবরণটি পড়লে আপনি এটি দেখতে পাবেন ... " ফ্রেমওয়ার্ক / লাইব্রেরির জন্য কোনও ট্যাগও অন্তর্ভুক্ত না করা হলে খাঁটি জাভাস্ক্রিপ্টের উত্তরটি দেওয়া হয় প্রত্যাশিত। ".. আমি একমাত্র জাভাস্ক্রিপ্ট উত্তর হওয়ার জন্য এটি একটি +1 দিচ্ছি ...
আইকনর


12
আপনি যদি নোডজেএস করছেন, আমি কোনও জেএসএন স্ট্রিংকে একটি জেএসএন বস্তুতে পার্স করার জন্য jQuery লোড করব এমন কোনও উপায় নেই। সুতরাং জোনাথনের জবাবটিকে উর্ধ্বে দিন
অ্যান্টনি

6
এই লিঙ্ক অনুসারে এটি Requires document to be in IE8+ standards mode to work in IE8.
আইই 8+

878

JQuery পদ্ধতিটি এখন অবচয় করা হয়েছে। পরিবর্তে এই পদ্ধতিটি ব্যবহার করুন:

let jsonObject = JSON.parse(jsonString);

অবহিত jQuery কার্যকারিতা ব্যবহার করে আসল উত্তর :

আপনি যদি jQuery ব্যবহার করেন তবে কেবল ব্যবহার করুন:

jQuery.parseJSON( jsonString );

এটি ঠিক আপনি যা খুঁজছেন তা (jQuery ডকুমেন্টেশন দেখুন ) see


7
JSON.parse () এর মাধ্যমে এটি ব্যবহার করার কোনও কারণ আছে কি?
জন

8
jQuery.parseJSONJSON.parseএটি বিদ্যমান থাকলে ব্যবহারের ক্ষেত্রে ডিফল্ট , সুতরাং <আই 7 এর জন্য যদি আপনার ফ্যালব্যাকের প্রয়োজন হয় তবে আসলটির উপরে এটি ব্যবহারের একমাত্র কারণ। এটি jQuery 1.6 এ ফিরে যাওয়ার পথে পরিবর্তন করা হয়েছিল: james.padolsey.com/jquery/#v=1.6.0&fn=jQuery.parseJSON
কার্ল-জোহান

9
২০১ update আপডেট: jQuery 3.0 হিসাবে, p .parseJSON অবমূল্যায়ন করা হয়েছে এবং এর পরিবর্তে আপনার স্থানীয় JSON.parse পদ্ধতিটি ব্যবহার করা উচিত।
jkdev

159

এই উত্তরটি IE <7 এর জন্য, আধুনিক ব্রাউজারগুলি উপরে জোনাথনের উত্তরটি পরীক্ষা করে দেখুন।

এই উত্তরটি পুরানো এবং উপরে জোনাথনের উত্তর ( JSON.parse(jsonString)) এখন সেরা উত্তর

JSON.org জাভাস্ক্রিপ্টের জন্য চারটি পৃথক ভাষা সহ অনেক ভাষার জন্য JSON পার্সার রয়েছে। আমি বিশ্বাস করি বেশিরভাগ লোকেরা তাদের বাস্তবায়নটি json2.js বিবেচনা করবে ।


24
আমি আশা করি লোকেরা এই উত্তরটি নিচে ভোট দেওয়া বন্ধ করে দেবে। এটি ২০০৮ সালে প্রকাশিত হওয়ার সময় সঠিক ছিল the নতুনটিকে সবেমাত্র আপভোট করুন।
জন

22
উত্তরটি এখন যদি পুরানো হয় তবে আপডেট করার বিষয়টি বিবেচনা করুন।
সোটিরিওস ডেলিমনলিস

2
আই ই <8 এর জন্য আপনার এটি ব্যবহার করা দরকার।
মাহমুদভিসি

74

" JSON.parse () " এ সাধারণ কোড উদাহরণটি ব্যবহার করুন :

var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}';
var contact = JSON.parse(jsontext);

এবং এটি বিপরীত:

var str = JSON.stringify(arr);

23

এটি করার অন্যান্য উপায় সম্পর্কে আমি নিশ্চিত নই তবে আপনি প্রোটোটাইপ (জেএসএন টিউটোরিয়াল) এ এটি কীভাবে করেন তা এখানে ।

new Ajax.Request('/some_url', {
  method:'get',
  requestHeaders: {Accept: 'application/json'},
  onSuccess: function(transport){
    var json = transport.responseText.evalJSON(true);
  }
});

evalJSON()যুক্তি হিসাবে সত্যের সাথে কল করা আগমনকারী স্ট্রিংকে স্বাস্থ্যকর করে তোলে।


22

এই বিষয়টি মনে হচ্ছে:

একটি ইনপুট যা আজাক্স ওয়েবসকেট ইত্যাদির মাধ্যমে প্রাপ্ত হয় এবং এটি স্ট্রিং ফর্ম্যাটে থাকবে তবে এটি আপনার কিনা তা জানা দরকার JSON.parsable। মুশকিল হ'ল, আপনি যদি সর্বদা এটি JSON.parseচালিয়ে যান তবে প্রোগ্রামটি "সাফল্যের সাথে" চালিয়ে যেতে পারে তবে আপনি এখনও ভীতু হয়ে কনসোলে একটি ত্রুটি নিক্ষেপ করতে দেখবেন "Error: unexpected token 'x'"

var data;

try {
  data = JSON.parse(jqxhr.responseText);
} catch (_error) {}

data || (data = {
  message: 'Server error, please retry'
});

কোন। সমস্যাটি হ'ল আপনি কোনও জেএসওএন অবজেক্টের প্রত্যাশা করছেন এবং (function(){ postCookiesToHostileServer(); }());নোডের প্রসঙ্গে নাস্টিয়ার স্টাফ বা শেষ হতে পারে ।
ইয়াহুর

আচ্ছা JSON.parse ফাংশনগুলির ইনপুটটি স্ক্রাব করে (যা এই ক্ষেত্রে এটি আইআইএফ -> অবজেক্ট হিসাবে সহায়তা করবে না)। দেখে মনে হচ্ছে এই বিষয়টি সম্পর্কে সবচেয়ে ভাল উপায় হল চেষ্টা / ধরা is (সম্পাদনা দেখুন)
কোডি 21

18

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

$.getJSON(url, function(data) { });

তারপরে আপনি এই জাতীয় জিনিসগুলি করতে পারেন

data.key1.something
data.key1.something_else

প্রভৃতি


আপনি jQuery ব্যবহার করছেন, আপনি না?
আলেকজান্দ্রি সি

15
$.ajax({
  url: url,
  dataType: 'json',
  data: data,
  success: callback
});

কলব্যাকটি ফেরত ডেটা পাস হয়ে যায়, যা একটি জাভাস্ক্রিপ্ট অবজেক্ট বা অ্যারে হবে JSON স্ট্রাকচার দ্বারা সংজ্ঞায়িত করা হয়েছে এবং $.parseJSON()পদ্ধতিটি ব্যবহার করে পার্স করা হয়েছে ।


12

কেবল মজাদার জন্য, এখানে একটি ফাংশন ব্যবহার করার উপায় রয়েছে:

 jsonObject = (new Function('return ' + jsonFormatData))()

1
আকর্ষণীয় পদ্ধতির বিষয়টি, আমি নিশ্চিত নই যে আমি এটি JSON এর সাথে ব্যবহার করেছি available পার্স উপলব্ধ।

5
এটি কেবল এটি করতে ব্যবহার evalকরার মতো এবং এটি নিরাপদ নয়। : পি
ফ্লোরিরি

7
এটিতে ব্যবহারের সমস্ত ত্রুটি রয়েছে evalতবে রক্ষণাবেক্ষণকারীদের বুঝতে এটি আরও জটিল এবং আরও কঠিন is
কোয়ান্টিন

9

ব্যবহার JSON.parse করা সম্ভবত সেরা উপায়।

এখানে একটি উদাহরণ লাইভ ডেমো

var jsonRes = '{ "students" : [' +
          '{ "firstName":"Michel" , "lastName":"John" ,"age":18},' +
          '{ "firstName":"Richard" , "lastName":"Joe","age":20 },' +
          '{ "firstName":"James" , "lastName":"Henry","age":15 } ]}';
var studentObject = JSON.parse(jsonRes);

9

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

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

তারপরে আপনি JSON উপাদানগুলির মানগুলি পেতে পারেন, উদাহরণস্বরূপ:

var myResponseResult = JsonObject.result;
var myResponseCount = JsonObject.count;

ডকুমেন্টেশনে বর্ণিত jQuery ব্যবহার করা jQuery.parseJSON():

JSON.parse(jsonString);

9

এই ডেটা অবজেক্টটি দিয়ে পদ্ধতিটি ব্যবহার করে দেখুন। প্রাক্তন: Data='{result:true,count:1}'

try {
  eval('var obj=' + Data);
  console.log(obj.count);
}
catch(e) {
  console.log(e.message);
}

আপনি সিরিয়াল পোর্ট প্রোগ্রামিংয়ের সাথে কাজ করার সময় এই পদ্ধতিটি নোডেজগুলিতে সত্যই সহায়তা করে


এটা সত্যিই মজার বিষয় যে কীভাবে লোকেরা "ইভাল অশুভ" হিসাবে সংশোধিত হয় এবং তারা এড়াতে তারা কিছু করতে পারে এমনকি পুরো
evক্যবদ্ধ

Trickকমত্য কি এই কৌশলটি নিরাপদ পদ্ধতিটি JSON অবজেক্টে রূপান্তরিত করছে? কোনও অতিরিক্ত জেএস আমদানির প্রয়োজন নেই বলে আমি এটি ব্যবহার করতে পারি।
আপনারা কে কে

1
যেকোন পদ্ধতির ব্যবহার evalবা Functionএকইভাবে দুর্বল
স্লাই

undefined; function bye() {...} bye();
উদ্ধারক

5

আমি একটি "আরও ভাল" উপায় পেয়েছি:

কফিস্ক্রিপ্টে:

try data = JSON.parse(jqxhr.responseText)
data ||= { message: 'Server error, please retry' }

জাভাস্ক্রিপ্টে:

var data;

try {
  data = JSON.parse(jqxhr.responseText);
} catch (_error) {}

data || (data = {
  message: 'Server error, please retry'
});

4

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

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

JSON.safeParse = function (input, def) {
  // Convert null to empty object
  if (!input) {
    return def || {};
  } else if (Object.prototype.toString.call(input) === '[object Object]') {
    return input;
  }
  try {
    return JSON.parse(input);
  } catch (e) {
    return def || {};
  }
};

Object.prototype.toString.call(input) === '[object Object]'typeof input === 'object'আইএমও হওয়া উচিত
সার্জ কে।

টাইপফুল ইনপুট নাল এবং অ্যারেগুলিকেও প্রত্যাবর্তন করে। সুতরাং এটি করার নিরাপদ উপায় নয়।
তাহসিন তুরোকোজ

আপনি ইতিমধ্যে আবৃত nullআগে মামলা, এবং একটি অ্যারের হয় একটি বস্তু। আপনি যদি এটি পরীক্ষা করতে চান তবে আপনি এটি ব্যবহার করতে পারেন instanceof। তদতিরিক্ত, আপনি যদি এই ফাংশনটি একটি দেন Array, এটি ধরা পড়বে এবং return defকখন এটি পুরোপুরি সূক্ষ্ম অ্যারেটি ফিরিয়ে দিতে পারত।
সার্জ কে।

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

আইএমও, সাধারণ toString()জ্ঞানটি ভেরিয়েবল কোনও বস্তু কিনা তা পরীক্ষা করার জন্য পদ্ধতি ব্যবহার করে না। দেখুন AngularJS , jQuery এর , আন্ডারস্কোর , অথবা এমনকি devs
সার্জ কে


3

আমাদের যদি এর মতো স্ট্রিং থাকে:

"{\"status\":1,\"token\":\"65b4352b2dfc4957a09add0ce5714059\"}"

তারপরে আমরা JSON.parseএই স্ট্রিংটিকে JSON অবজেক্টে রূপান্তর করতে কেবল দু'বার ব্যবহার করতে পারি :

var sampleString = "{\"status\":1,\"token\":\"65b4352b2dfc4957a09add0ce5714059\"}"
var jsonString= JSON.parse(sampleString)
var jsonObject= JSON.parse(jsonString)

এবং আমরা ব্যবহার করে JSON অবজেক্ট থেকে মানগুলি বের করতে পারি:

// instead of last JSON.parse:
var { status, token } = JSON.parse(jsonString);

ফলাফলটি হবে:

status = 1 and token = 65b4352b2dfc4957a09add0ce5714059

3

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

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

var response = '{"result":true,"count":1}'; //sample json object(string form)
JSON.parse(response); //converts passed string to JSON Object.

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

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

আপনি একটি অবজেক্ট হিসাবে আউটপুট পাবেন {result: true, count: 1}

এই অবজেক্টটি ব্যবহার করার জন্য, আপনি এটিকে ভেরিয়েবলের কাছে বরাদ্দ করতে পারেন, সম্ভবত obj :

var obj = JSON.parse(response);

ব্যবহার করে obj এবং ডট ( .) অপারেটর দ্বারা আপনি JSON অবজেক্টের বৈশিষ্ট্য অ্যাক্সেস করতে পারেন।

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

console.log(obj.result);

3

অফিসিয়াল ডকুমেন্টেশন :

JSON.parse()পদ্ধতি JSON স্ট্রিংকে, জাভাস্ক্রিপ্ট মান বা বস্তুর স্ট্রিং দ্বারা বর্ণিত নির্মাণের parses। reviverফলাফলটি ফিরে আসার আগে তার পরিবর্তনের জন্য একটি trans চ্ছিক ফাংশন সরবরাহ করা যেতে পারে।

বাক্য গঠন:

JSON.parse(text[, reviver])

পরামিতি:

text : JSON হিসাবে পার্স করার স্ট্রিং। JSON সিনট্যাক্সের বিবরণের জন্য JSON অবজেক্টটি দেখুন।

reviver (optional) : যদি কোনও ফাংশন, এটি নির্ধারণ করে যে পার্সিং দ্বারা উত্পাদিত মানটি কীভাবে ফিরে আসার আগে রূপান্তরিত হয়।

ফেরত মূল্য

প্রদত্ত JSON পাঠ্যের সাথে সম্পর্কিত অবজেক্ট।

ব্যতিক্রমসমূহ

পার্স করার স্ট্রিংটি বৈধ JSON না হলে সিন্ট্যাক্সেরর ব্যতিক্রম ছুঁড়ে।



2

JSON স্ট্রিং এর সাথে পার্স করুন JSON.parse(), এবং ডেটা একটি জাভাস্ক্রিপ্ট অবজেক্টে পরিণত হয়:

JSON.parse(jsonString)

এখানে, জেএসওএন জেএসএন ডেটাসেট প্রক্রিয়া করার জন্য প্রতিনিধিত্ব করে।

কল্পনা করুন যে আমরা একটি ওয়েব সার্ভার থেকে এই পাঠ্য পেয়েছি:

'{ "name":"John", "age":30, "city":"New York"}'

একটি JSON অবজেক্টে পার্স করতে:

var obj = JSON.parse('{ "name":"John", "age":30, "city":"New York"}'); 

এখানে objসম্পর্কিত JSON অবজেক্টটি যা দেখে মনে হচ্ছে:

{ "name":"John", "age":30, "city":"New York"}

একটি মান আনতে .অপারেটরটি ব্যবহার করুন :

obj.name // John
obj.age //30

একটি জাভাস্ক্রিপ্ট অবজেক্টটি স্ট্রিংয়ে স্ট্রিংয়ে রূপান্তর করুন JSON.stringify()


1

বিভিন্ন ইনপুট ধরণের জন্য কেবল কভার পার্স করতে

JSON.parse () দিয়ে ডেটা পার্স করুন এবং ডেটা একটি জাভাস্ক্রিপ্ট অবজেক্টে পরিণত হয়।

var obj = JSON.parse('{ "name":"John", "age":30, "city":"New York"}');

JSON.parse () ব্যবহার করার সময় একটি অ্যারে থেকে প্রাপ্ত JSON এ, পদ্ধতিটি একটি জাভাস্ক্রিপ্ট অ্যারের পরিবর্তে একটি জাভাস্ক্রিপ্ট অ্যারে প্রদান করবে।

var myArr = JSON.parse(this.responseText);
console.log(myArr[0]);

তারিখের বিষয়গুলি JSON এ অনুমোদিত নয়। তারিখগুলি জন্য এইভাবে কিছু করেন

var text = '{ "name":"John", "birth":"1986-12-14", "city":"New York"}';
var obj = JSON.parse(text);
obj.birth = new Date(obj.birth);

জেএসএনে কার্যাবলীর অনুমতি নেই। আপনার যদি কোনও ফাংশন অন্তর্ভুক্ত করার দরকার হয় তবে এটি স্ট্রিং হিসাবে লিখুন।

var text = '{ "name":"John", "age":"function () {return 30;}", "city":"New York"}';
var obj = JSON.parse(text);
obj.age = eval("(" + obj.age + ")");

0

পুরানো প্রশ্ন, আমি জানি, যাইহোক কেউ এই সমাধানটি নজরে না দিয়ে new Function()একটি বেনাম ফাংশন ব্যবহার করে যা ডেটা ফেরত দেয়।


শুধু একটি উদাহরণ:

 var oData = 'test1:"This is my object",test2:"This is my object"';

 if( typeof oData !== 'object' )
  try {
   oData = (new Function('return {'+oData+'};'))();
  }
  catch(e) { oData=false; }

 if( typeof oData !== 'object' )
  { alert( 'Error in code' ); }
 else {
        alert( oData.test1 );
        alert( oData.test2 );
      }

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

আমি এটি ডিওএম উপাদানগুলির (উদাহরণস্বরূপ ডেটা অ্যাট্রিবিউট) কনফিগারেশন সেটিংস 'সংকলন' করতে সহজ এবং দ্রুত ব্যবহার করি।


0

সারসংক্ষেপ:

জাভাস্ক্রিপ্ট (উভয় ব্রাউজার এবং নোডজেএস) এর একটি বিল্ট ইন JSONঅবজেক্ট রয়েছে। এই অবজেক্টটিতে ডিল করার জন্য 2 সুবিধাজনক পদ্ধতি রয়েছে JSON। তারা নিম্নলিখিত:

  1. JSON.parse() লাগে JSON, আর্গুমেন্ট হিসাবে জাতীয় বস্তু ফেরৎ
  2. JSON.stringify() যুক্তি রিটার্ন JSONঅবজেক্ট হিসাবে জেএস বস্তুকে নেয় T

অন্যান্য অ্যাপ্লিকেশন:

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

let arr1 = [1, 2, [3 ,4]];
let newArr = arr1.slice();

arr1[2][0] = 'changed'; 
console.log(newArr); // not a deep clone

let arr2 = [1, 2, [3 ,4]];
let newArrDeepclone = JSON.parse(JSON.stringify(arr2));

arr2[2][0] = 'changed'; 
console.log(newArrDeepclone); // A deep clone, values unchanged


0

আপনি reviverফিল্টার করতে ফাংশন ব্যবহার করতে পারেন ।

var data = JSON.parse(jsonString, function reviver(key, value) {
   //your code here to filter
});

আরও তথ্যের জন্য পড়ুন JSON.parse


0

স্ট্রিংকে কোনও বস্তুতে রূপান্তর করার সঠিক উপায় JSON.parse তবে পার্স করা স্ট্রিংটি যদি বস্তু না হয় বা স্ট্রিংটি সঠিক না হয় তবে এটি একটি ত্রুটি ছুঁড়ে দেয় যা বাকী কোডটি ভেঙে ফেলবে তাই এটি JSON.parse ফাংশনটি ট্র্যাচ-ক্যাচের মতো করে মোড়ানো আদর্শ ideal

try{
   let obj = JSON.parse(string);
}catch(err){
   console.log(err);
}

-1

এটি চেষ্টা করুন .এটি টাইপ স্ক্রিপ্টে লেখা।

         export function safeJsonParse(str: string) {
               try {
                 return JSON.parse(str);
                   } catch (e) {
                 return str;
                 }
           }

আমি টাইপস্ক্রিপ্টে নতুন। এতে কী লাভ হয় JSON.parse()?
মার্ক এল।

যদি কোনও ব্যতিক্রম ঘটে থাকে তবে এটি নিজেই ইনপুট স্ট্রিংটি ফিরিয়ে দেবে
সুপুন ধর্মরত্ন

-1
/**
 * Safely turning a JSON string into an object
 *
 * @param {String} str - JSON String
 * @returns deserialized object, false if error
 */
export function jsonParse(str) {
  let data = null;
  try {
    data = JSON.parse(str);
  } catch (err) {
    return false;
  }
  return data;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.