Ответ 1
Во-первых, я думаю, вы называете это неправильным. "JSON" означает "Обозначение объектов JavaScript" - это просто спецификация для представления некоторых данных в строке, которая явно имитирует литералы JavaScript (и массивы, строки, числа и логические). Вы пытаетесь создать объект JavaScript динамически - поэтому слово, которое вы ищете, является "объектом".
С этой педантией, я думаю, что вы спрашиваете, как установить свойства объекта и массива.
// make an empty object
var myObject = {};
// set the "list1" property to an array of strings
myObject.list1 = ['1', '2'];
// you can also access properties by string
myObject['list2'] = [];
// accessing arrays is the same, but the keys are numbers
myObject.list2[0] = 'a';
myObject['list2'][1] = 'b';
myObject.list3 = [];
// instead of placing properties at specific indices, you
// can push them on to the end
myObject.list3.push({});
// or unshift them on to the beginning
myObject.list3.unshift({});
myObject.list3[0]['key1'] = 'value1';
myObject.list3[1]['key2'] = 'value2';
myObject.not_a_list = '11';
Этот код будет создавать объект, указанный вами в вашем вопросе (за исключением того, что я называю его myObject вместо myJSON). Для получения дополнительной информации о доступе к свойствам я рекомендую Руководство по JavaScript Mozilla и книгу JavaScript: хорошие части.