जवाबों:
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);
इस पोस्ट के लिए धन्यवाद। मैं कुछ जोड़ना चाहता हूं जो उपयोगी हो सकता है।
IE के लिए, यह उपयोग करने के लिए अच्छा है
object["property"] = value;
सिंटैक्स क्योंकि IE में कुछ विशेष शब्द आपको एक त्रुटि दे सकते हैं।
एक उदाहरण:
object.class = 'value';
यह IE में विफल रहता है, क्योंकि " वर्ग " एक विशेष शब्द है। मैंने इसके साथ कई घंटे बिताए।
2015 से ECMAScript के साथ आप स्प्रेड सिंटैक्स (… तीन डॉट्स) का उपयोग कर सकते हैं:
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
JSON है,a.s
जैसा कि आपके द्वारा परिभाषित केवल एक स्ट्रिंग है। अब आप["subproperty"]
एक स्ट्रिंग में जोड़ने की कोशिश कर रहे हैं । क्या अब आप समझ गए हैं कि u को त्रुटि क्यों मिली?