JSON 字符串不会打印到控制台

JSON string won't print to console

我有这项服务:

getCert(p: string): Promise<string> {
  return ApiService.getData(this.apiUrl + p + this.certEndpoint).then(
    (response) => response.data
  );
}

这是data的例子:

{
    "state": "success",
    "message": "Message received."
}

如果我 return response.data.stateresponse.data.message 我得到相关值。

如果我这样调用它:

async componentDidMount() {
    const queryString = require('query-string');
    const parsed = queryString.parse(location.search);
    return this.docListingService.getPks(parsed.policy).then(async pks => {
        this.setState({ isLoading: false, packs });
        this.certService.getCert(parsed.policy).then( response => {
            console.log('RESPONSE: ' + response);
        });
        return pks;
    }).catch((error) => {
        this.loggingService.logError('Error returning Docs ' + error);
        this.setState({ errorOccured: true});
    });
}

response 是一个字符串,但我的 consle.log 打印 RESPONSE [object Object]。我尝试了 console.log('RESPONSE: ' + response.state);console.log('RESPONSE: ' + response.message); 但它们出错了。正如:

console.log('RESPONSE: ' + JSON.parse(response));

我该如何解决?

console.log() 接受任意数量的参数。所以你可以像这样使用它:

console.log('response ', response)

如果你想记录多个变量,你可以这样做:

console.log(variable1, variable2, variable3, 'some string', variable4);

您的代码 console.log 中存在错误,您正在尝试连接字符串和 json 对象。你可以试试这个代码

console.log('response ', JSON.parse(response));

//or

console.log('response ', JSON.parse(response).data.message);

//or

console.log('response ' + JSON.parse(response).data.message);

只需使用:

JSON.stringify(response)

这会将对象结构显示为字符串值。