首页 > 解决方案 > 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() 在我的项目?

标签: jsoncordovacordova-pluginsionic4

解决方案


经过两天的摆弄,我很失望,因此关闭了所有的窗口、命令行等。最后我在任务管理器中杀死了 node.js 服务。抽完烟后我开始了新的尝试。怎么说,JSON 现在可以使用了,Promise 按预期工作——但两者仍然被 Visual Studio Code 标记为“未知”。当我想到这一点时,Visual Studio Code 开始为我提供更新。我去了。

怎么说:更新有帮助,有时为您和您的机器休息也有助于解决问题。也许这会在未来帮助一个可怜的灵魂。


推荐阅读