Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json TypeError:无法读取属性';地图';未定义的具有角度v6的_Json_Angular_Typescript_Typeerror - Fatal编程技术网

Json TypeError:无法读取属性';地图';未定义的具有角度v6的

Json TypeError:无法读取属性';地图';未定义的具有角度v6的,json,angular,typescript,typeerror,Json,Angular,Typescript,Typeerror,由于某些原因,响应JSON没有正确映射 这是我的html。 profile-search.component.html <h3>Enter Username</h3> <input (keyup)="search($event.target.value)" id="name" placeholder="Search"/> <ul> <li *ngFor="let package of packages$ | async">

由于某些原因,响应JSON没有正确映射 这是我的html。 profile-search.component.html

<h3>Enter Username</h3>
<input (keyup)="search($event.target.value)" id="name" placeholder="Search"/>
<ul>
  <li *ngFor="let package of packages$ | async">
    <b>{{package.name}} v.{{package.repos}}</b> -
    <i>{{package.stars}}</i>`enter code here`
  </li>
</ul>
到 login:data.login和login:entry.login,但不断出现以下错误

http错误处理程序.service.ts:33类型错误:无法读取属性“map” 未定义的 在MapSubscriber.project(profile search.service.ts:49) 在MapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/map.js.MapSubscriber.\u下一步 (地图js:75) 在MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (订户:js:93) 在MapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/map.js.MapSubscriber.\u下一步 (地图js:81) 在MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (订户:js:93) 在FilterSubscriber.push../node_modules/rxjs/_esm5/internal/operators/filter.js.FilterSubscriber.\u下一步 (filter.js:85) 在FilterSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (订户:js:93) 在MergeMapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/mergeMap.js.MergeMapSubscriber.notifyNext (mergeMap.js:136) 在InnerSubscriber.push../node_modules/rxjs/_esm5/internal/InnerSubscriber.js.InnerSubscriber.\u下一步 (InnerSubscriber.js:20) 在InnerSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (订户:js:93)


数据中的
结果
。结果
可能是
未定义的
,请检查
数据
对象是否与您期望的架构匹配。

数据中的结果
。结果可能是
未定义的
,检查
数据
对象是否与您期望的架构匹配。

映射
处理
数组
,但是这个.http.get(
${searchUrl}/${packageName}
)返回的对象不是数组


因此,
data.results
是未定义的。

map
处理
array
但是这个.http.get(
${searchUrl}/${packageName}
)返回的对象不是数组


因此,
数据。结果
未定义。

这是我如何将对象转换为数组的,如果有人有更好的方法,请告诉我

return this.http.get(`${searchUrl}/${packageName}`).pipe(
  map((data: any) => {
    console.log(data);
    var profile = Object.keys(data).map(function(key) {
      return [(key) + ': ' + data[key]];
    } 
  );
    console.log(profile);
    data = profile;
    return data;
  }),
  catchError(this.handleError<Error>('search', new Error('OOPS')))
);
返回这个.http.get(`${searchUrl}/${packageName}').pipe(
地图(数据:任意)=>{
控制台日志(数据);
var profile=Object.keys(数据).map(函数(键){
返回[(键)+':'+数据[键];
} 
);
控制台日志(概要文件);
数据=配置文件;
返回数据;
}),
catchError(this.handleError('search',new Error('OOPS'))
);
}
}

这是我如何将对象转换为数组的,如果有人有更好的方法,请告诉我

return this.http.get(`${searchUrl}/${packageName}`).pipe(
  map((data: any) => {
    console.log(data);
    var profile = Object.keys(data).map(function(key) {
      return [(key) + ': ' + data[key]];
    } 
  );
    console.log(profile);
    data = profile;
    return data;
  }),
  catchError(this.handleError<Error>('search', new Error('OOPS')))
);
返回这个.http.get(`${searchUrl}/${packageName}').pipe(
地图(数据:任意)=>{
控制台日志(数据);
var profile=Object.keys(数据).map(函数(键){
返回[(键)+':'+数据[键];
} 
);
控制台日志(概要文件);
数据=配置文件;
返回数据;
}),
catchError(this.handleError('search',new Error('OOPS'))
);
}
}

我通过消除“.results”解决了这个问题


我通过消除“.results”解决了此问题


数据,
package$
是否正确,您只需要在您的模板中显示它?返回的
数据
是什么样子的?数据,
包$
是否正确,您只需要在您的模板中显示它?返回的
数据是什么样子的?奎师那你是对的,我必须把这个对象变成一个数组。之后,我看到了克里希纳的包装,你是对的,我必须把这个物体变成一个阵列。之后,我看到了包裹
return this.http.get(`${searchUrl}/${packageName}`).pipe(
    map((data: any) => {
        return data.results.map(entry => ({
            name: entry.any[0],
          } as NpmPackageInfo )
        )
return this.http.get(`${searchUrl}/${packageName}`).pipe(
  map((data: any) => {
    console.log(data);
    var profile = Object.keys(data).map(function(key) {
      return [(key) + ': ' + data[key]];
    } 
  );
    console.log(profile);
    data = profile;
    return data;
  }),
  catchError(this.handleError<Error>('search', new Error('OOPS')))
);
.map((data: any) => this.convertData(data.results))
.map((data: any) => this.convertData(data))