json - ionic4 cordova插件http.get接收json,预期传递json,但传递字符串
问题描述
服务是
import { Injectable } from '@angular/core';
import { HTTP, HTTPResponse } from '@ionic-native/http/ngx';
import { Promise } from 'q';
@Injectable({
providedIn: 'root'
})
export class YfapiService {
private baseUrl: string;
constructor(private http: HTTP) {
this.baseUrl = "valid url delivering some json";
}
public getDriverDetails(driverKey: string): Promise<HTTPResponse> {
return Promise((resolve, reject) => {
this.http.get(this.baseUrl, {}, {})
.then(response => resolve(response.data))
.catch(error => reject(error));
});
}
};
url 是有效的,并提供内容类型为 application/json 的 json。但是,在“响应”中有“数据”,并且 response.data 始终是一个字符串,其中包含从远程服务接收到的 json。如何把它变成json?
JSON.parse 似乎不可用。所以第二个问题是:我做错了什么还是我错过了什么?
Ionic V4.10.3 Cordova 8.1.2 最近几天安装的插件平台:windows 10、java 8 Cordova 中设置的平台:浏览器、android
概括:
A.) 如何通过 json 中的响应来履行承诺 B.) 如果这不可能,当 JSON.parse() 不可用时如何将字符串转换为 JSON,或者如何使 JSON.parse() 在我的项目?
解决方案
经过两天的摆弄,我很失望,因此关闭了所有的窗口、命令行等。最后我在任务管理器中杀死了 node.js 服务。抽完烟后我开始了新的尝试。怎么说,JSON 现在可以使用了,Promise 按预期工作——但两者仍然被 Visual Studio Code 标记为“未知”。当我想到这一点时,Visual Studio Code 开始为我提供更新。我去了。
怎么说:更新有帮助,有时为您和您的机器休息也有助于解决问题。也许这会在未来帮助一个可怜的灵魂。
推荐阅读
- r - 如何用两个数据框r总结数据
- vue.js - 参数 URL Vue Js
- css - 我可以隔离放大验证器样式吗?
- javascript - 将文本放在拖放区域下
- c++ - 跨多个进程共享系统状态信息:静态类 | 外部标题 | 具有静态成员的类
- c++ - WebRtc Acoustic Echo Cancellation3 (AEC3) 在 Echo Cancellation 后提供 Flat MicOutPut
- android - Google Play 不接受高分辨率图标,尽管它是 512x512 和 32 位 RGBA
- html - 图像幻灯片在 CSS 中的行为不符合预期
- xslt - xsl:变量赋值说明
- codenameone - 无法使用新的 GUI Builder 5.6 添加额外的标签