当前位置: 首页 > 知识库问答 >
问题:

角度不识别对象类型

闻人越
2023-03-14
    ...
    QuestionResponseDTO dto = new QuestionResponseDTO();
    dto.setStart(ZonedDateTime.now());
    dto.setEnd(ZonedDateTime.now());
    dto.setDuration("X seconds");
    dto.setResponse(new ActivityListResponseDTO(Arrays.asList("Cooking", "Eating")));
    return dto;
}
{"id":2,"responses":[{"id":0,"dto":{"start":"2021-06-16T09:08:28.142Z","end":"2021-06-16T09:08:28.142Z","duration":"X seconds",
"response":{
"activities":["Cooking","Eating"],
"typeName":"ActivityListResponseDTO",
"className":null},
"typeName":"QuestionResponseDTO",
"className":null}}]}
//angular
if (dto instanceof QuestionResponseDTO) {
        console.log("this ran");
        const responseBody = ((<QuestionResponseDTO>dto).response);

        if(responseBody instanceof ActivityListResponseDTO) {
          console.log("this ran 2");
          // because backend only returns a string
          const arr = (<ActivityListResponseDTO>responseBody)
            .activities.map(s => ({stringContent: s}));
...

默认情况下,responsebody在前端也具有QuestionResponseBodyDTO类型。ActivityListResponseDTO也在前端扩展了这一点,因此它应该可以工作。但是由于某些原因,程序没有在内部if语句中运行,并且“this ran2”从未被记录。

是不是我做错了什么?

共有1个答案

呼延鸿畅
2023-03-14

从HTTP API接收的响应将是一个简单的JSON对象。

要使它在前端正确工作,您必须将该对象映射到前端的相应类型。

您可以使用json-object-mapper库来实现这一点。

    null
 类似资料:
  • 问题内容: 我有以下示例未完成方法来比较给定对象的对象类型 该方法可以称为: 此方法实际上不起作用,请帮助我使其起作用 问题答案: 您忘记了: 请注意,此类代码通常是不良OO设计的标志。 还要注意,将对象的类与类进行比较,并使用instanceof是不一样的。例如: 是假的,而 是真的。 是否必须使用一个或另一个取决于您的要求。

  • 问题内容: 我想知道是否需要避免在创建一个带有嵌入式对象数组的简单对象时复制对对象的引用。情况如下:我有一个接受JSON并应用一些逻辑然后将对象存储在其中的服务器D B。可以说,我的表单用于保存DB中的团队。服务器接受team作为json。团队有一个TeamMember对象数组,我的表单有一个简单的字段来输入团队成员信息并将其添加到团队teamMembers数组中。现在这是一个问题,当我向数组列表

  • 在roles/ansible-role-deploy-other-thing/tasks/main.yml中,以下内容被称为: 运行时,此会导致以下错误: 错误!在/users/myuser/playbooks/deploy-thing/roles:/users/myuser/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:/u

  • 问题内容: 我有一个表示日历日期的JSON对象。这些是通过CMS添加的,我希望能够根据日期对其进行过滤。我的架构设置使这比我想象的要困难得多。是否可以在此JSON对象中按天值订购或是否存在过滤器解决方法? 这是我的JSON对象: 这是我的视图,该视图已经使用自定义过滤器按月过滤。orderBy无法正常运行,但我将其保留为占位符以显示我要在何处设置功能。 问题答案: 您应该能够定义一个自定义排序功能

  • 问题内容: 在我的代码中,我正在创建一个对象集合,各个线程将以一种仅在对象是不可变的情况下才安全的方式访问这些对象。当试图将一个新对象插入到我的集合中时,我想测试一下它是否是不可变的(如果不是,我将抛出一个异常)。 我可以做的一件事是检查一些众所周知的不可变类型: 这实际上使我省了90%的路,但是有时我的用户会想要创建自己的简单不可变类型: 是否有某种方式(也许使用反射)可以可靠地检测到类是否不可

  • 在面向对象中,类和对象是最基本、最重要的组成单元。类实际上是表示一个客观世界某类群体的一些基本特征抽象。对象就是表示一个个具体的东西。所以说 类是对象的抽象,对象是类的具体。 让我们来看看人类所具有的一些特征,这些特征包括属性(一些参数、数值)以及方法(一些行为,他能干什么)。 每个人都有身高、体重、年龄、血型等属性,人会劳动、会直立行走、会用自己的头脑去创造工具等方法。人之所以能区别于其他类型的