如何在Typescript中访问JSON对象?

DevMoutarde

我有一个看起来像这样的JSON“媒体”对象:

const media = [{
    "0": {
        "small": "",
        "large": ""
    }
}];

我必须这样输入:

export interface Media {
    0: {
        large: string
        medium: string
        small: string,
        type: string
    }
}

为了能够通过进行访问element[0].small

我正在使用的所有JSON对象都如下所示,其索引等于0,这不是很有用,但是我无法更改它。

我有什么办法可以通过访问我的财产element.small吗?

k0pernikus

您可以转换JSON对象并以简化形式使用它们:

const clean = (elem) => elem[0];

您还可以在执行此操作时获得打字稿的类型支持,例如,可以使用泛型进行定义:

export interface Raw<T> {
    0: T
}
const transform = <T>(raw: Raw<T>): T => raw[0];

这样,您可以通过Raw<The_Interface_I_Want>;键入JSON输入

然后,您可以仅为相关信息定义接口:

export interface Media {
    large: string
    medium: string
    small: string,
    type: string
}

然后您可以像这样使用它:

const rawMedia: Raw<Media> = {
    0: {
        "large": "large",
        "small": "small",
        "medium": "medium",
        "type": "type"
    }
};

const media: Media = transform<Media>(rawMedia);

这样做的好处是,您始终可以进行类型推断并以这种方式获得自动完成功能。从理论上讲,您还可以根据需要自定义转换。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在BackgroundWorker中访问COM对象?

来自分类Dev

如何在PHP对象中访问信息

来自分类Dev

如何在Javascript中访问JSON对象?

来自分类Dev

如何在AngularJs中访问嵌套的Json对象

来自分类Dev

如何在angularjs中访问对象数组

来自分类Dev

如何访问JSON对象中的对象数组?

来自分类Dev

如何在PostMan中访问Request对象

来自分类Dev

如何在processing()对象中访问数据

来自分类Dev

如何在PHP中访问stdclass对象

来自分类Dev

如何在TypeScript中动态访问对象属性

来自分类Dev

如何在JSON数组python中访问JSON对象?

来自分类Dev

如何在php对象中访问数据

来自分类Dev

如何在javascript中的对象内访问对象中的对象?

来自分类Dev

如何从Android中的JSON对象访问数据?

来自分类Dev

如何在angularjs中访问对象数组

来自分类Dev

我如何在angularjs中访问深度嵌套的json对象

来自分类Dev

如何在JavaScript中访问对象?

来自分类Dev

如何在'(String,JSON)'中访问JSON

来自分类Dev

如何在PHP对象中访问数组

来自分类Dev

如何访问JSON对象中的值?

来自分类Dev

如何在Jquery中访问JSON对象?

来自分类Dev

如何访问此 JSON 中的对象

来自分类Dev

如何在javascript中访问对象属性?

来自分类Dev

如何在 Spring Rest Request 中访问内部 json 对象

来自分类Dev

如何在对象中访问外部 .this

来自分类Dev

如何在 C# 中访问 JSON 对象的结果

来自分类Dev

如何在查询中访问数组的对象?

来自分类Dev

如何在 angular/typescript 中初始化子 json 对象?

来自分类Dev

如何在 Angular 2+ 中访问 JSON 对象中的对象?