উত্তর:
JSON এর অর্থ জাভাস্ক্রিপ্ট অবজেক্ট নোটেশন। একটি JSON অবজেক্ট আসলেই এমন একটি স্ট্রিং যা এখনও প্রতিনিধিত্ব করে এমন বস্তুতে রূপান্তরিত হতে পারে।
জেএসের একটি বিদ্যমান অবজেক্টে একটি সম্পত্তি যুক্ত করতে আপনি নিম্নলিখিতটি করতে পারেন।
object["property"] = value;
অথবা
object.property = value;
আপনি যদি কিছু অতিরিক্ত তথ্য সরবরাহ করেন তবে যেমন প্রসঙ্গে আপনি যা করতে হবে ঠিক তেমন উত্তর আপনি পেতে পারেন।
object["property"] = value;
JSON.stringify
।
console.log
সিরিয়ালাইজেশনের উদ্দেশ্যে নয়। ব্যবহার console.log(JSON. stringify(object))
।
var jsonObj = {
members:
{
host: "hostName",
viewers:
{
user1: "value1",
user2: "value2",
user3: "value3"
}
}
}
var i;
for(i=4; i<=8; i++){
var newUser = "user" + i;
var newValue = "value" + i;
jsonObj.members.viewers[newUser] = newValue ;
}
console.log(jsonObj);
একটি JSON অবজেক্ট হ'ল একটি জাভাস্ক্রিপ্ট অবজেক্ট, সুতরাং জাভাস্ক্রিপ্ট একটি প্রোটোটাইপ ভিত্তিক ভাষা হ'ল আপনাকে যা করতে হবে তা ডট নোটেশন ব্যবহার করে এটিকে সম্বোধন করতে হবে।
mything.NewField = 'foo';
এই পোস্টের জন্য ধন্যবাদ। আমি এমন কিছু যুক্ত করতে চাই যা দরকারী হতে পারে।
আই আই এর জন্য এটি ব্যবহার করা ভাল
object["property"] = value;
সিনট্যাক্স কারণ আইই এর কয়েকটি বিশেষ শব্দ আপনাকে ত্রুটি দিতে পারে।
একটি উদাহরণ:
object.class = 'value';
এটি আইয়ে ব্যর্থ হয়, কারণ " শ্রেণি " একটি বিশেষ শব্দ। আমি এই কয়েক ঘন্টা ব্যয়।
২০১৫ সাল থেকে ইসমাস্ক্রিপ্টের সাহায্যে আপনি স্প্রেড সিনট্যাক্স (… তিনটি বিন্দু) ব্যবহার করতে পারেন:
let people = { id: 4 ,firstName: 'John'};
people = { ...people, secondName: 'Fogerty'};
এটি আপনাকে সাব অবজেক্ট যুক্ত করার অনুমতি দেয়:
people = { ...people, city: { state: 'California' }};
ফলাফলটি হবে:
{
"id": 4,
"firstName": "John",
"secondName": "Forget",
"city": {
"state": "California"
}
}
আপনি অবজেক্টগুলি মার্জ করতে পারেন:
var mergedObj = { ...obj1, ...obj2 };
আপনি Object.assign
থেকে ব্যবহার করতে পারেন ECMAScript 2015
। এটি আপনাকে একবারে নেস্টেড বৈশিষ্ট্যগুলি যুক্ত করতে দেয়। উদাহরণ:
const myObject = {};
Object.assign(myObject, {
firstNewAttribute: {
nestedAttribute: 'woohoo!'
}
});
PS: এটি নির্ধারিত বৈশিষ্ট্যগুলির সাথে বিদ্যমান অবজেক্টটিকে ওভাররাইড করবে না। পরিবর্তে তারা যুক্ত করা হবে। তবে আপনি যদি কোনও বিদ্যমান বৈশিষ্ট্যটির জন্য কোনও মান নির্ধারণ করেন তবে তা ওভাররাইড হবে।
extend: function(){
if(arguments.length === 0){ return; }
var x = arguments.length === 1 ? this : arguments[0];
var y;
for(var i = 1, len = arguments.length; i < len; i++) {
y = arguments[i];
for(var key in y){
if(!(y[key] instanceof Function)){
x[key] = y[key];
}
}
};
return x;
}
একাধিক জসন বস্তু প্রসারিত (ফাংশন উপেক্ষা):
extend({obj: 'hej'}, {obj2: 'helo'}, {obj3: {objinside: 'yes'}});
একক জেসন বস্তুর ফলস্বরূপ
আপনি প্রসারিত ফাংশনটি ব্যবহার করে আপনার জসনে নতুন জসন অবজেক্টগুলি যুক্ত করতে পারেন ,
var newJson = $.extend({}, {my:"json"}, {other:"json"});
// result -> {my: "json", other: "json"}
প্রসারিত ফাংশনের জন্য খুব ভাল বিকল্প হ'ল পুনরাবৃত্তিমূলক মার্জ। প্রথম প্যারামিটার হিসাবে কেবল আসল মান যুক্ত করুন (আরও বিকল্পের জন্য ডকুমেন্টেশন পড়ুন)। উদাহরণ,
var newJson = $.extend(true, {}, {
my:"json",
nestedJson: {a1:1, a2:2}
}, {
other:"json",
nestedJson: {b1:1, b2:2}
});
// result -> {my: "json", other: "json", nestedJson: {a1:1, a2:2, b1:1, b2:2}}
আপনি সরাসরি কোনও বস্তুর আক্ষরিক ক্ষেত্রে পরিবর্তনশীলগুলির সাথে অ্যাট্রিবিউট যুক্ত করতে পারেন।
const amountAttribute = 'amount';
const foo = {
[amountAttribute]: 1
};
foo[amountAttribute + "__more"] = 2;
ফলাফল স্বরূপ:
{
amount: 1,
amount__more: 2
}
ব্যবহার $.extend()
এর jQuery , এভাবে:
token = {_token:window.Laravel.csrfToken};
data = {v1:'asdass',v2:'sdfsdf'}
dat = $.extend(token,data);
আমি আশা করি আপনি তাদের সেবা করবেন।
a
,a.s
ঠিক যেমন আপনার দ্বারা সংজ্ঞায়িত করা হয়েছে একটি স্ট্রিং। এখন আপনি["subproperty"]
একটি স্ট্রিং যোগ করার চেষ্টা করছেন । আপনি বুঝতে পেরেছেন কেন ত্রুটিটি পেয়েছেন?