0

I'm trying to convert a form data object to JSON

var dataFormItin = $("#formitinerary").serializeArray(); 

result

itinerary: {
'itinerary[0][date]': undefined,
'itinerary[0][title]': 'Day 1 to Colombo',
'itinerary[0][destinationId]': '5ff3b8d7f0f3bf04b8141362',
'itinerary[0][program]': 'asd',
'itinerary[0][transfer_duration]': '2 hours'
}

and i want to make it like

itinerary : [
     { date : ..., title :...},
     { date : ..., title :...}
]
thatrafi
  • 3
  • 1
  • 1
    Does this answer your question? [Convert JS object to JSON string](https://stackoverflow.com/questions/4162749/convert-js-object-to-json-string) – bsplosion Feb 24 '21 at 16:55

1 Answers1

0

Maybe, it will be solved your problem

// 1. Example Data
const serializeArray = [
  { name: "itinerary[0][date]", value: "" },
  { name: "itinerary[0][title]", value: "Day 1 to Colombo" },
  { name: "itinerary[0][destinationId]", value: "5ff3b8d7f0f3bf04b8141362" },
  { name: "itinerary[0][program]", value: "asd" },
  { name: "itinerary[1][date]", value: "" },
  { name: "itinerary[1][title]", value: "Day 1 to Colombo" },
  { name: "itinerary[1][destinationId]", value: "5ff3b8d7f0f3bf04b8141362" },
  { name: "itinerary[1][program]", value: "asd" },
]

// 2. Define object key here
const arrayOfKey = ['date', 'title', 'destinationId', 'program']

// 3. Create empty array object
const arrayObject = []

// 4. Transform Serialize Array into Array Object
for(i = 0; i < serializeArray.length / arrayOfKey.length; i++ ){
  const newObject = {}
  for(const key of arrayOfKey){
    newObject[key] = (serializeArray.find(data => data.name == `itinerary[${i}][${key}]`)).value
  }
  arrayObject.push(newObject)
}

// 5. Show the result
console.log(arrayObject)

/**
 * [
  {
    date: '',
    title: 'Day 1 to Colombo',
    destinationId: '5ff3b8d7f0f3bf04b8141362',
    program: 'asd'
  },
  {
    date: '',
    title: 'Day 1 to Colombo',
    destinationId: '5ff3b8d7f0f3bf04b8141362',
    program: 'asd'
  }
]
 */