Массив строк Json для объекта в Vuex - PullRequest
0 голосов
/ 03 февраля 2019

В моих штатах у меня есть categories.В массиве categories у каждой категории есть столбец settings, в котором я сохранил строку массива json.Мой вопрос, как я могу превратить мою строку в объект, отфильтровывая ответ?Мой ответ:

[{"id":4,"name":"Vehicles","slug":"vehicles","settings":"[{"edit":true,"searchable":true}]","created_at":"2019-01-26 16:37:36","updated_at":"2019-01-26 16:37:36"},

Это мое действие по загрузке для категорий:

const loadCategories = async ({ commit }, payload) => {
  commit('SET_LOADING', true);

  try {
    const response = await axios.get(`admin/store/categories?page=${payload.page}`);
    const checkErrors = checkResponse(response);
    if (checkErrors) {
      commit('SET_DIALOG_MESSAGE', checkErrors.message, { root: true });
    } else {
      commit('SET_STORE_CATEGORIES', response.data);
    }
  } catch (e) {
    commit('SET_DIALOG_MESSAGE', 'errors.generic_error', { root: true });
  } finally {
    commit('SET_LOADING', false);
  }
};

Это мое SET_STORE_CATEGORIES:

const SET_STORE_CATEGORIES = (state, payload) => {

  state.categories=payload.data;

  state.pagination = {
    currentPage: payload.current_page,
    perPage: payload.per_page,
    totalCategories: payload.total,
    totalPages: payload.last_page,
  };
};

Здесь я хотел бы добавитьизменить значение, чтобы превратить строку в объект.Пришлось добавить:

 let parsed=[];
      parsed=response.data.data.map((item)=>{
              console.log(item);
               let tmp=item;
                tmp.settings=JSON.parse(item.settings);
              return tmp;
            });
      response.data.data=parsed;
      commit('SET_STORE_CATEGORIES', response.data);

1 Ответ

0 голосов
/ 03 февраля 2019

Вы можете отобразить данные вашего ответа следующим образом, проанализировав эту строку с объектом:

let parsed=[];
parsed=response.data.map((item)=>{
         let tmp=item;
          tmp.settings=JSON.parse(item.settings);
        return tmp;
      });
commit('SET_STORE_CATEGORIES', parsed);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...