Я бы просто сделал простую проверку, чтобы увидеть, существует ли d [a] и если не инициализировать его ...
var a = "1",
b = "hello",
c = { "100" : "some important data" },
d = {};
if (d[a] === undefined) {
d[a] = {}
};
d[a]["greeting"] = b;
d[a]["data"] = c;
console.debug (d);