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



我有这个服务:

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

这是data的一个例子:

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

如果我返回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);

直接使用:

JSON.stringify(response)

这将显示Object结构为字符串值。

你的代码的console.log中有一个bug,你正在尝试连接字符串和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);

最新更新