Разделите несколько массивов в одной строке — Javascript — JSON

#jquery #json

#jquery #json

Вопрос:

У меня есть строка с несколькими массивами в ней, разделенными запятой. Что я хочу сделать, так это разобрать каждый json-объект (не массив!) в один массив в javascript. Каков наилучший способ сделать это?

 [  
   {  
      "type":"radio-group",
      "label":"Radio-Button-Gruppe",
      "name":"radio-group-1556028993486",
      "className":"iCheck",
      "values":[  
         {  
            "label":"aaaaaaa",
            "value":"aaaaaaa"
         },
         {  
            "label":"bbbbbbbbb",
            "value":"bbbbbbbbb"
         },
         {  
            "label":"cccccccccccc",
            "value":"cccccccccccc"
         }
      ]
   }
],
[  
   ...
],
[  
   {  
      "type":"header",
      "label":"Überschrift"
   }
]
  

Хотите иметь это:

 array[0] = {  
      "type":"radio-group",
      "label":"Radio-Button-Gruppe",
      "name":"radio-group-1556028993486",
      ...
   }

array[n] = {  
      "type":"header",
      "label":"Überschrift"
   }
  

Решение

 JSON.parse(`[${formData}]`).flat();
  

С помощью flat() -функции я мог бы убрать скобки внешнего массива и разобрать мои json-объекты в свой массив.

Комментарии:

1. JSON.parse

Ответ №1:

Кажется, не хватает только квадратных скобок для переноса. Вы пробовали:

 let str = '...', // your string
    arr = JSON.parse(`[${str}]`).flat();