首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从输出中隐藏属性名称

从输出中隐藏属性名称
EN

Stack Overflow用户
提问于 2020-10-28 02:23:29
回答 2查看 28关注 0票数 0

我有一个返回数据的函数。此数据来自具有属性名称的接口。输出具有属性名称。如果可能的话,我想避免这种情况。

我该怎么做呢?

接口:

代码语言:javascript
复制
export interface DataNode {
    id?: number,
    type?: string,
    parentId?: number,
    data?: any,
    children?: DataNode[],
    buildings?: DataNode[],
    areas?: DataNode[],
    rooms?: DataNode[],
    flags?: DataNode[],
    details?: DataNode[]
};

创建输出的代码:

代码语言:javascript
复制
export const fromCity = async (
    city: entities.City,
    depth: "none" | "immediate" | "full"
): Promise<DataNode> => {
    return {
        id: city.id,
        type: "City",
        data: {
            name: city.name,
            title: city.title,
            // created: city.created,
            // updatedAt: city.updatedAt
        },
        buildings: depth !== "none" ?
            await mapChildren((building: entities.Building): Promise<DataNode> => {
                building.city = building.city || Promise.resolve(city);
                return fromBuilding(
                    building,
                    depth === "immediate" ? "none" : depth
                );
            })(await (city.buildings || Promise.resolve([]))) : []
    };
};

我从API得到的实际输出:

代码语言:javascript
复制
            "id": 1,
                "type": "Building",
                "parentId": 1,
                "data": {
                    "name": "data-center",
                    "title": "Data Center",
                    "subtitle": "Secure Data Center and Cloud NOC",
                    "x": "11.30",
                    "y": "41.50"

我想从API中得到什么:

代码语言:javascript
复制
            "id": 1,
                "type": "Building",
                "parentId": 1,
                {
                    "name": "data-center",
                    "title": "Data Center",
                    "subtitle": "Secure Data Center and Cloud NOC",
                    "x": "11.30",
                    "y": "41.50"

注意"data":的消失。这就是我想隐藏的。

有没有一种简单的方法来告诉你“不返回这个属性名,只返回它的值”?

EN

回答 2

Stack Overflow用户

发布于 2020-10-28 02:30:28

对象的键必须是字符串。因此,最接近所需输出的方法是将"data"键命名为空字符串""

票数 1
EN

Stack Overflow用户

发布于 2020-10-28 02:33:10

Javascript不允许这样做。如果没有键来访问它,就不能有一个值,否则数据将无法通过对象访问。你能做的就是让它输出一个数组:

代码语言:javascript
复制
[
  {
    "id": 1,
    "type": "Building"
    "parentId": 1
  },
  {
    "name": "data-center",
    "title": "Data Center",
    "subtitle": "Secure Data Center and Cloud NOC",
    "x": "11.30",
    "y": "41.50",
  }
]

然后,您可以从访问数据

代码语言:javascript
复制
JSON.parse(JSONresponse[1]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64560683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档