将JSON中的数组转换为javascript中的对象
我有以下来自GraphQL端点的数据: 我需要将其中的数组替换为JSON对象,如下所示:将JSON中的数组转换为javascript中的对象,javascript,json,Javascript,Json,我有以下来自GraphQL端点的数据: 我需要将其中的数组替换为JSON对象,如下所示: { "data": { "metatags": { { "title": "Metatag title", "description": "Metatag description" } }, "herounits": { { "title": "Hero unit title",
{
"data": {
"metatags": {
{
"title": "Metatag title",
"description": "Metatag description"
}
},
"herounits": {
{
"title": "Hero unit title",
"description": "Hero unit description"
}
}
}
}
一直在尝试不同的方法,但都没有奏效。您想要的对象无效,您有一个没有属性名称的额外级别的对象嵌套 假设你真正想要的是:
{
"data": {
"metatags": {
"title": "Metatag title",
"description": "Metatag description"
},
"herounits": {
"title": "Hero unit title",
"description": "Hero unit description"
}
}
}
可以通过将每个属性替换为数组元素0中的值来实现
设obj={
数据:{
元标记:[
{
标题:元标记标题,
描述:元标记描述
}
],
单位:[
{
标题:英雄单位标题,
描述:英雄单位描述
}
]
}
};
Object.keysobj.data.forEachk=>obj.data[k]=obj.data[k][0];
console.logobj;您的预期结果无效;不能将对象直接嵌套在这样的对象内部。你到底想达到什么目的?你现在的数组有什么问题?你需要一个对象内部的密钥-只有你的第一个密钥是有效的。嗨@Pointy,谢谢你的回复!我正在使用一个名为Vuex-i18n的插件,它不允许以herounits[0]的身份访问。title,因此我需要在没有数组的情况下获得最终结果,GraphQL端点来自Strapi headless CMS。您好@Barmar,这正是我需要的,它工作得很好,非常感谢您!!!:D
{
"data": {
"metatags": {
"title": "Metatag title",
"description": "Metatag description"
},
"herounits": {
"title": "Hero unit title",
"description": "Hero unit description"
}
}
}