从 Angular 2 中的 JSON http 响应中去除字符



我正在尝试使用封装()的 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上,语法可能不太正确。

相关内容

  • 没有找到相关文章

最新更新