首页 > 解决方案 > Angular - 将 API 响应对象映射到键值对

问题描述

我正在尝试使用 Angular 从 Laravel API 中读取数据,但无法从中获取逐项列出的键值对。

app.component.ts :

import { Component, OnInit } from '@angular/core';
import { DataService } from './data.service';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})

export class AppComponent implements OnInit {
  
  products = [];

  constructor (private dataService: DataService ) {}

  ngOnInit() {
    this.dataService.sendGetRequest().subscribe((data: any = [])=>{
      console.log(data);
      this.products = data;
    });
  }
}

我从 API 读取的 DataService 类: data.service.ts :

import { Injectable } from '@angular/core';
import { HttpClient, JsonpInterceptor } from '@angular/common/http';

@Injectable({
  providedIn: 'root'
})
export class DataService {

  private REST_API_SERVER = "http://127.0.0.1:8000/api/assets";

  constructor(private httpClient: HttpClient) { }

  public sendGetRequest(){
    
    return this.httpClient.get(this.REST_API_SERVER);
    
  }
}

我得到的只是一个对象列表:

在此处输入图像描述

我尝试了 Angular 的“地图”运算符,但仍然得到相同的对象列表。有任何想法吗 ?读取这些对象内的实际数据的最佳方法是什么?

谢谢

标签: angularlaravelapirestmapping

解决方案


事实证明我没有在 API 端发送正确的 JSON 对象。下面已经解决了这个问题。值不再作为“对象”出现,而是正确的 JSON 集。

返回响应()->json($resp);

我希望这对将来的人有所帮助。


推荐阅读