我正在尝试使用封装()
的 JSON 响应,如下所示:
({
"status": "ok",
"messages": {
"generalMessages": [],
"recordMessages": []
},
"foundRows": 2029
})
我收到以下错误:
意外的令牌(在位置 0 的 JSON 中
这会阻止我做.map(response => response.json().status);
之类的事情,因为它不是有效的 JSON。
我尝试过什么:在 Angular 1.5 中,我用以下内容解决了这个问题:
(angular.fromJson(response.data.substr(1, response.data.length - 2), true))
但是,要在 Angular 2 中做到这一点,似乎我必须将其转换为文本,然后再转换为 JSON,这完全破坏了格式。
我的问题:如何剥离()
并将新结果作为 JSON 处理?
您可以使用Response
中的.text()
方法,然后使用普通JSON.parse
.map(
response => JSON.parse(
response.text().substring(1, response.text().length - 2
)['status']
)
我想你可以(并且可能应该(扩展它,以确保响应是"文本",并且它是你展示的格式错误的那种。
但关键是,如果您之前只是在操作文本响应,那么现在没有什么可以阻止您这样做。
data.slice(1,data.length-1(.toJSON((
在iPad上,语法可能不太正确。