这个json数据类型中的数据类型是什么?

时间:2017-10-03 07:51:00

标签: json angular typescript

我正通过这个角度实现向后端创建HTTP请求。

我首先从' @ angular / common / http'导入{HttpClientModule}来准备app.module。进入app.module然后将其添加到imports数组中,使其可供应用程序的其余部分使用。

然后,我在HttpClient上使用get方法来访问我服务器中的数据 这是游戏计划。

问题是关于确定服务器返回的数据类型。

该组件具有此代码...为了简洁,我剪切了不需要的东西。

@Component(...)

export class MyComponent implements OnInit {

// results: string[]; // I am not sure about this 

constructor(private http: HttpClient) {}

ngOnInit(): void {

   url = 'http://example.com/authentication/get-username.php';

   http
     .get<MyJsonData>(url)
     .subscribe... 

}

我的问题是...... 我应该在哪里打字?在上面的代码中?

多一点背景:

URL返回如下内容: {"wordpress_username":"admin_joe","user_role":"admin"}

或者如果没有用户登录,则

{"wordpress_username":"","user_role":""}

现在,在这里,我们得到了一个类似{&#34; x&#34;:&#34; y&#34;,&#34; j&#34;:&#34; k&#34;}的格式 这是一个json字符串。但是,它也是一个对象

这就是我的困惑开始的地方。

为此构建接口会更好吗? 如果是这样,界面会是什么样的?

1 个答案:

答案 0 :(得分:1)

使用Typescript首选其强类型也适用于Typescript级别。最好有一个类型。

在这两种情况下,您都拥有相同形状的对象,其中包含两个属性wordpress_usernameuser_role。您的界面可能如下所示

export interface MyJsonData {
   wordpress_username: string,
   user_role: string
}

此外,如果您只能使用一个属性进行回复,则可以在属性名称末尾添加?作为可选项

export interface MyJsonData {
   wordpress_username?: string,
   user_role?: string
}