In order to achieve a string in form that you presented you can use:
var object1 = {"abc":{"name":"myabcname"}};
var object2 = {"def":{"name":"defname"}};
var myObject = Object.assing({}, object1, object2);
var myString = JSON.stringify(myObject);
// "{"abc":{"name":"myabcname"},"def":{"name":"defname"}}"
Danger of using Object.assign - It is only one level deep copy.
Example:
var me = {
name: "Tomasz",
lastName: "Bubała",
social: {
github: "@tomegz",
twitter: "@tomaszbubala"
}
};
var dev = Object.assign({}, me);
/* This is fine */
dev.name = "Tom";
// => "Tom"
me.name;
// => "Tomasz"
/* This is danger */
dev.social.twitter = "@example";
// => "@example"
me.social.twitter;
// => "@example"
Hopefully in ES7 you will be able to use spread operator to achieve this effecft:
var myObject = {...object1, ...object2};