Как сохранить данные вложенного объекта в базе данных vue. js проекта. (какой формат?) - PullRequest
0 голосов
/ 10 января 2020

У меня есть проект, в котором я создаю данные во вложенном объекте и, сохраняя их в базе данных, я делаю JSON .stringify. Все работает нормально, но когда я пытаюсь извлечь те же данные из базы данных, мне нужно json .parse, но после этого я назначаю его в состояние vuex, и я теряю некоторые вложенные данные из моих исходных данных.

данные в базе данных:

[
  {
    "id": "1-368",
    "name": "\tSolan",
    "days": 1,
    "daynights": 2,
    "hotel": {
      "hotel_data": [
        {
          "id": 1,
          "title": "hotel 1"
        }
      ],
      "checkin": "",
      "checkout": "",
      "roomtype": ""
    },
    "hotel2": {
      "hotel_data": [
        {
          "id": 1,
          "title": "hotel 1"
        }
      ],
      "checkin": "",
      "checkout": "",
      "roomtype": ""
    },
    "specinst": "",
    "mealplan": ""
  },
  {
    "id": "2-54",
    "name": "Dharamsala",
    "days": "3",
    "daynights": 4,
    "hotel": {
      "hotel_data": [
        {
          "id": 3,
          "title": "hotel3"
        }
      ],
      "checkin": "",
      "checkout": "",
      "roomtype": ""
    },
    "hotel2": {
      "hotel_data": [
        {
          "id": 2,
          "title": "hotel 2"
        }
      ],
      "checkin": "",
      "checkout": "",
      "roomtype": ""
    },
    "specinst": "",
    "mealplan": ""
  }
]

данные после присвоения состоянию vuex:

[
  {
    "id": "1-368",
    "name": "\tSolan",
    "days": 1,
    "daynights": 2,
    "hotel": {
      "hotel_data": "",
      "checkin": "",
      "checkout": "",
      "roomtype": ""
    },
    "hotel2": {
      "hotel_data": "",
      "checkin": "",
      "checkout": "",
      "roomtype": ""
    },
    "specinst": "",
    "mealplan": "",
    "date_from": "08 Jan 2020",
    "date_to": "09 Jan 2020"
  },
  {
    "id": "2-54",
    "name": "Dharamsala",
    "days": "3",
    "daynights": 4,
    "hotel": {
      "hotel_data": "",
      "checkin": "",
      "checkout": "",
      "roomtype": ""
    },
    "hotel2": {
      "hotel_data": "",
      "checkin": "",
      "checkout": "",
      "roomtype": ""
    },
    "specinst": "",
    "mealplan": "",
    "date_from": "09 Jan 2020",
    "date_to": "12 Jan 2020"
  }
]

В приведенном выше коде вы можете заметить, что hotel_data является вложенным массивом, но не может увидеть его после присвоения vuex штат.

код:

const mutations = {
  setItem(state, item) {
    state.item.tour_location=JSON.parse(item.tour_location);
  }
}

1 Ответ

0 голосов
/ 10 января 2020

Попробуйте перенести значение в stringify как JSON.parse(JSON.stringify(item.tour_location))

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