Json字符串数组到Vuex中的对象

Posted

技术标签:

【中文标题】Json字符串数组到Vuex中的对象【英文标题】:Json string array to object in Vuex 【发布时间】:2019-06-27 08:41:59 【问题描述】:

在我的州,我有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);

【问题讨论】:

使用JSON.parse(yourString)函数 @BoussadjraBrahim,这很干净,但我想在保存到各州之前这样做 请在您的问题中提供更多详细信息 你为什么要response.data.data=parsed; 我的回复是分页回复。 【参考方案1】:

您可以通过将该字符串解析为一个对象,将您的响应数据映射如下:

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

【讨论】:

出现错误。我想我的响应数据是一个数组,其中 cat 比 1 多。 这是什么错误?请打印该响应并给我输出

以上是关于Json字符串数组到Vuex中的对象的主要内容,如果未能解决你的问题,请参考以下文章

在我们将其解析为 JSON 之前,Snowflake 如何转义对象数组字符串中的所有特殊字符?

怎么把json字符串转成数组对象

C# 使用字符串数组中的嵌套对象动态创建 JSON

JSON对象数组到单个字符串

如何更新 vuex 存储数组中的对象?

如何在 kotlin Android 中访问更大的 jsonArray json 中的 json 数组中的字符串