У меня есть проект, в котором я создаю данные во вложенном объекте и, сохраняя их в базе данных, я делаю 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);
}
}