Javascript normalizerv3和jsonapi

Javascript normalizerv3和jsonapi,javascript,normalizr,Javascript,Normalizr,我希望将从API收到的响应标准化。典型的响应可能如下所示: // Get all projects {data:[ { id: 1 ... team:{ data: { id:15 ... } } }, { id:2, .... }, {

我希望将从API收到的响应标准化。典型的响应可能如下所示:

// Get all projects
{data:[
    {
        id: 1
        ...
        team:{
            data: {
                id:15
                ...
            }

        }
    },
    {
        id:2,
        ....
    },
    {
        id:3,
        ...
    }
]}
{
    entities:{
        projects:{
            undefined:{
                0:{
                    team:{
                        data:{
                            id:15,
                            ...
                        }
                    }
                },
                1:{...},
                2:{...}.
                ...
                50:{...},
            }
        }
    },
    result:[] // length is 0
}
如何编写模式,使其删除“数据”容器? 目前,我的模式如下所示:

export const project = new schema.Entity('projects', {
    team: team, // team omitted
},
{
    processStrategy: (value, parent, key) => parent.data
}
)

export const arrayOfProjects = new schema.Array(project)
我使用它就像:

const normalizedProjects = normalize(jsonResponse, arrayOfProjects)
然后,normalizedProjects如下所示:

// Get all projects
{data:[
    {
        id: 1
        ...
        team:{
            data: {
                id:15
                ...
            }

        }
    },
    {
        id:2,
        ....
    },
    {
        id:3,
        ...
    }
]}
{
    entities:{
        projects:{
            undefined:{
                0:{
                    team:{
                        data:{
                            id:15,
                            ...
                        }
                    }
                },
                1:{...},
                2:{...}.
                ...
                50:{...},
            }
        }
    },
    result:[] // length is 0
}

我也不知道为什么项目列表包含在“未定义”中?

要省略
数据的每个实体架构(或任何其他基本更改)都需要包含一个用于删除或更改任何数据的。(请参阅中的更多示例)

我也使用json_api模式。 像这样怎么样

const projectsSchema = new schema.Entity('projects', {}, {
  processStrategy: processStrategy
});

export const processStrategy = (value, parent, key) => {
  const attr = value.attributes;
  delete value.attributes;
  return { ...value, ...attr };
};

export const fetchProjectsSchema = {
  data: [projectsSchema]
}

感谢您提供的提示,我现在已经尝试过了,但是我似乎无法从processStrategy函数返回的任何内容中删除“未定义”对象作为父对象,该函数类似于processStrategy:(value,parent,key)=>parent.data;。你知道是什么原因吗?如果你能展示一些代码,你正在做的事情可能会更清楚。编辑原始问题以缩小数据,并展示我在为流程策略做什么。你正在使用JSONAPI模式,就像在JSONAPI.org中一样?(不仅仅是一个“json api”)。所以,normalizer对于JSONAPI来说并不是很好。有一个normalizer分支试图很好地使用它,但我不确定它是否有任何用处