Как мне создать массив JSON в этой конкретной структуре c - PullRequest
0 голосов
/ 29 мая 2020

Это формат массива [{"name":"Rose","number":"+919224512555"},{"name":"smith","number":"+91975555224"}] Я получил из моей формы angular, в которой есть таблица Dynami c с именем и номером столбца соответственно.

Я хочу преобразовать вышеупомянутый массив в приведенный ниже указанный формат для хранения в базе данных.

"name": [
            {
                "first_name": "Rose",
                "formatted_name": "Rose",
            },
            {
                "first_name": "smith",
                "formatted_name": "Smith",
            },
        ] ,          


"phones": [
            {
                "phone": "+919224512555",
                "type": "HOME"
            },
            {
                "phone": "+91975555224",
                "type": "HOME",
            }
        ],        

Я использую angular для фронтенд-разработки и laravel для бэк-энда

Ответы [ 3 ]

0 голосов
/ 29 мая 2020

Думаю, это будет лучший способ сделать это

const data = [
  { name: "Rose", number: "+919224512555" },
  { name: "smith", number: "+91975555224" },
]

const mapped = {
    "name": data.map((item) => ({
        first_name: item.name,
        formatted_name: item.name, // do your own formatting here
    })),
    "phone": data.map((item) => ({
        phone: item.number,
        type: item.number, // do your own processing here
    }))
}

console.log(mapped)

надеюсь, что это принесет вам пользу

0 голосов
/ 29 мая 2020

Можно сделать с Array#reducer

const arr = [{"name":"Rose","number":"+919224512555"},{"name":"smith","number":"+91975555224"}];

const res = arr.reduce((a,{name,number})=>{
       a.name = a.name||[];
       a.name.push({first_name:name,formatted_name:name});
       a.phones = a.phones||[];
       a.phones.push({phone:number,type:'HOME'});
       return a;
},{})

console.log(res)
0 голосов
/ 29 мая 2020

Приведенный ниже код должен помочь вам реструктурировать ваш JSON объект

const req_body = [
    { name:"Rose", number:"+919224512555" },
    { name:"smith", number:"+91975555224"}
]

const restrutured_body = { 
    name: [], 
    phone: [] 
};

req_body.forEach((item) => {
    restrutured_body.name.push({
        first_name: item.name,
        formatted_name: item.name
    });

    restrutured_body.phone.push({
        phone: item.number,
        type: 'HOME'
    });
});

console.log(restrutured_body);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...