错误 TS2339:属性 'JSON' 在类型 'Object' 上不存在。 “.map(resp => resp.JSON())” angular 4

Error TS2339: Property 'JSON' does not exist on type 'Object'. ".map(resp => resp.JSON())" angular 4

在我的文件中 contacts.service.ts。我有自己的代码

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

@Injectable

export class contactsService{

constructor(public http: HttpClient){

}

getContact(){
     return this.http.get('http://localhost:8080/chercherContacts? 
  mc=sa&page=2&size=6')
     .map(resp => resp.JSON());


 }

}

我在函数 getContact() 中遇到问题,因为 HttpClient 不需要地图,我收到了消息,我得到了消息:属性 'JSON' 在类型 'Object'

上不存在

当我忘记了这个函数中的 .map 时如何修改这段代码

当我可以在我的项目中更正此代码并考虑所有问题时给我建议。

使用Angular HttpClient 4.x+,默认将JSON响应解析为一个对象,不需要执行json()反对你对版本 2.x 及更低版本所做的响应。你可以简单地做:

getContact() {
  return this.http.get('http://localhost:8080/chercherContacts?mc=sa&page=2&size=6');
}

你只需要指定一个 responseType 如果它不是 JSON:

getContact() {
  return this.http.get('http://localhost:8080/chercherContacts?mc=sa&page=2&size=6', {responseType: 'text'});
}

此外,请查看有关 Typechecking the response 的 4.x 文档,您可以在其中指定一个接口来告知 HttpClient 响应的类型。这是推荐的,它将在消费 components/services/etc:

中提供打字支持
SomeInterface {
 foo: number;
 bar: string;
}

getContact() {
  return this.http.get<SomeInterface>('http://localhost:8080/chercherContacts?mc=sa&page=2&size=6');
}

这是一个简单的 example 实际操作。

希望对您有所帮助!

在我的申请中。我在这个文件夹的 services 目录中有一个服务 当我把 contact.service.ts 放在这个服务中时,我有我的第一个服务

import {HttpClient} from "@angular/common/http";

@Injectable

export  class ContactsService {

constructor( public http: HttpClient){

}

getContacts(){
  return this.http.get("http://localhost:8080/findPersons?mc=wa&page=1&size=6");
}

}

在我的组件中 contact.component.ts 我想收到这个 url 每当我在这个文档中写这个代码

import { Component, OnInit } from '@angular/core';
import {HttpClient} from "@angular/common/http";
import {ContactsService} from "../../services/contact.service";

@Component({
selector: 'app-contact',
templateUrl: './contact.component.html',
styleUrls: ['./contact.component.css']
})
export class ContactComponent implements OnInit {

pageContacts: any;

constructor(public http: HttpClient, public contactService: ContactsService) { }

ngOnInit() {

this.contactService.getContacts().subscribe(data => {
  this.pageContacts = data;
}, err => {
  console.log("L'erreuR : "+err);
});

 }

}

但我在 src/services/contact.service.ts(4,1) 中遇到错误 ERROR:错误 TS1238:调用时无法解析 class 装饰器的签名作为表达式。

ligne(4,1)在@Injectable的ligne里,不知道问题出在哪里

我的问题是删掉这段代码

ngOnInit() {
this.http.get('http://localhost:8080/findPersons?mc=wa&page=1&size=6')
  .subscribe(data =>{
    this.pageContacts = data;
  }, err => {
    console.log('ErreuR : '+err);
  });

}

一分为二。其中一项服务是当我收到 url 时,第二项是将数据写入页面 web

这就是全部

angular 的版本将在我的项目中出现故障 当我 运行 我的申请

时,我会关注此页面

谢谢我所有的朋友 :)