admin管理员组文章数量:1323200
i have a json i want to add key value pairs (after framing the below format) like
var json = {};
var a = '"key1" : "value1"'; //ing as dynamic
var b = '"key2" : "value2"'; // ing as dynamic
json.push(a); // i know it is wrong.
json.push(b); // i know it is wrong.
console.log(json); // {"key1": "value1", "key2": "value2"} expected
var array = [];
var c = '{"key1": "value1"}';
var d = '{"key2": "value2"}';
array.push(c);
array.push(d);
console.log(array); // ["{"key1": "value1"}", "{"key2": "value2"}"]
like the above i can push objects to array, but how can i push json strings directly to a json object.
i have a json i want to add key value pairs (after framing the below format) like
var json = {};
var a = '"key1" : "value1"'; //ing as dynamic
var b = '"key2" : "value2"'; // ing as dynamic
json.push(a); // i know it is wrong.
json.push(b); // i know it is wrong.
console.log(json); // {"key1": "value1", "key2": "value2"} expected
var array = [];
var c = '{"key1": "value1"}';
var d = '{"key2": "value2"}';
array.push(c);
array.push(d);
console.log(array); // ["{"key1": "value1"}", "{"key2": "value2"}"]
like the above i can push objects to array, but how can i push json strings directly to a json object.
Share Improve this question asked Sep 29, 2016 at 6:51 Sandeep sandySandeep sandy 3871 gold badge7 silver badges14 bronze badges 5-
1
try this
array["key1"] = "value"
– Hadi Commented Sep 29, 2016 at 6:53 - Do you get var a = '"key1" : "value1"'; dynamically as a string ? – Ravi Teja Commented Sep 29, 2016 at 6:54
- @SSH There's no associative arrays in JS – Rory McCrossan Commented Sep 29, 2016 at 7:01
- "Unfortunately rather than taking dynamic value it is taking the reference variable itself " What do you mean by this? – Ravi Teja Commented Sep 29, 2016 at 7:15
- Thankyou @SSH, Ravi, Rory. – Sandeep sandy Commented Sep 29, 2016 at 7:22
1 Answer
Reset to default 7Firstly a little clarification; there's no such thing as a 'JSON object'. There is a JSON-formatted string, and there is an object. They are two separate entities.
To add strings to an object, specify the property of the object and set its value. You don't need push()
for this as that is used exclusively for arrays. In your case, it should look like this:
var obj = {};
obj.key1 = "value1";
obj.key2 = "value2";
console.log(obj); // = { "key1": "value1", "key2": "value2" }
To set a key dynamically use bracket notation:
var key = 'foo';
obj[key] = 'bar';
console.log(obj); // = { 'foo': 'bar' }
If you need to then convert the object to a JSON string, call JSON.stringify
on that object:
var json = JSON.stringify(obj);
Also note that in your second example you end up with an array of strings, not an array of objects. If you want an array of objects you need to remove the quotes around the values you set, like this:
var array = [];
var c = { "key1": "value1" };
var d = { "key2": "value2" };
array.push(c);
array.push(d);
console.log(array); // [{ "key1": "value1" }, { "key2": "value2" }]
Note the difference in the position of the quotes in the objects and the result from the console.
本文标签: javascriptHow frame Json object dynamically with dynamic key and value stringsStack Overflow
版权声明:本文标题:javascript - How frame Json object dynamically with dynamic key and value strings - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1742093715a2420416.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论