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.state
或 response.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)
这会将对象结构显示为字符串值。
我有这项服务:
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.state
或 response.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)
这会将对象结构显示为字符串值。