JSON для TreeTable в PRIME NG

184
26 декабря 2018, 15:30

Как лучше сгенерить такой JSON?

let main = {
  "data": [{
      "data": {
        "name": "zzzzzz"
      },
      "children": [{
          "data": {
            "name": "Test1"
          }
        },
        {
          "data": {
            "name": "Test2"
          }
        },
        {
          "data": {
            "name": "Test3"
          }
        }
      ]
    },
    {
      "data": {
        "name": "zzzzzzz"
      },
      "children": [{
          "data": {
            "name": "Test1"
          }
        },
        {
          "data": {
            "name": "Test2"
          }
        },
        {
          "data": {
            "name": "Test3"
          }
        }
      ]
    }
  ]
}

Сделал свой вариант, но он далек от оптимального. Спасибо!

let arrr = [];
let arrr2 = [];
let objData3 = {};
let objData4 = {};
for (let itemz in arr) {
  let a = arr[itemz];
  let objNameInData = {};
  let objNameInData2 = {};
  let startObj = {};
  startObj.name = a.ServiceName;
  objNameInData.name = startObj;
  objNameInData2.name = "zzzzz"
  let objDataInChildren = {};
  let objDataInData = {};

  objDataInChildren.data = objNameInData.name;
  arrr.push(objDataInChildren);
  objData3.data = objNameInData2;
  objData3.children = arrr;
  arrr2.push(objData3)
  objData4.data = arrr2;
}
console.log(JSON.stringify(objData4, null, 4))
Answer 1

Как-то так я себе это увидел -

Вариант 1

const createJSON = count => Object.create(Object.prototype, { 
  data: { 
    value: Array.from(Array(count).keys(),e=>Object.create(Object.prototype,{ 
      data: { 
        value: Object.create(Object.prototype,{ 
          name: { 
            value: "zzzzzz", 
            writable: true, 
            enumerable: true, 
            configurable: true 
          } 
        }), 
        writable: true, 
        enumerable: true, 
        configurable: true 
      }, 
      children: { 
        value: Array.from(Array(3).keys(),(e,i)=>Object.create(Object.prototype,{ 
          data: { 
            value: Object.create(Object.prototype,{ 
              name: { 
                value: `Test ${i+1}`, 
                writable: true, 
                enumerable: true, 
                configurable: true 
              } 
            }), 
            writable: true, 
            enumerable: true, 
            configurable: true 
          } 
        })), 
        writable: true, 
        enumerable: true, 
        configurable: true 
      } 
    })), 
    writable: true, 
    enumerable: true, 
    configurable: true 
  } 
}); 
let main = createJSON(2); 
console.log(main)

Вариант 2

const createJSON = count => Object.create(Object.prototype, { 
  data: { 
    value: Array.from(Array(count).keys(),e=>JSON.parse('{"data":{"name":"zzzzzz"},"children":[{"data":{"name":"Test1"}},{"data":{"name":"Test2"}},{"data":{"name":"Test3"}}]}')), 
    writable: true, 
    enumerable: true, 
    configurable: true 
  } 
}); 
let main = createJSON(2); 
console.log(main)

READ ALSO
Проблемы при использовании SCORM-курсов

Проблемы при использовании SCORM-курсов

Пытаюсь разобраться с курсами SCORM

187
Проблема с кодировкой виджета

Проблема с кодировкой виджета

Подскажите, почему может быть такая проблема с кодировкой при наведении и черные точки?

142
MySQL сборка 2 запросов в таблицу

MySQL сборка 2 запросов в таблицу

Есть потребность в создание запроса который возвращал бы таблицу с полями

269