当前位置: 首页 > 知识库问答 >
问题:

如何改变存储在RxJS Observable中的数据?

谷梁子濯
2023-03-14

我在Angular 2应用程序中编写了一个方法,在进行一个返回JSON的服务器调用之后,创建并返回一个类的可观察对象。但是,JSON的格式很差,所以我需要一个快速修复方法来编辑返回的JSON,然后再将其发送到< code >。json()方法,由于json格式不良,该方法当前抛出一个错误。

具体来说,我需要在JSON中找到一个错误的逗号,它出现在数组的右括号之后,并删除它。

我的问题

Observable.map函数到底应该是什么样的?我如何找到并操作实际的JSON字符串,然后将其一起发送?我对所有这些都不熟悉,所以如果有详细信息,将不胜感激。

getList(): Observable<Thing[]> {
  let response = this.http.get('/api/get-things');
  let fixed = response.map(____WHAT GOES HERE?_____);
  return fixed.map((r: Response) =>r.json as Thing[]);
}

共有1个答案

徐星阑
2023-03-14

假设您有一个修复方法:

const fix = (json: string) => {
  // ...
}

你可以这样做:

const things: Observable<Thing[]> = this.http.get('/api/get-things')
  .map(response => response.text())
  .map(fix)
  .map(fixedJson => JSON.parse(fixedJson) as Thing[])

然而,这是一个非常糟糕的主意。修复服务器端代码!

 类似资料:
  • 问题内容: 我有一个MySQL数据库。默认存储引擎为。 我想将其更改为。 我可以逐个表地更改它,但是我想一次更改它影响所有表。 如何更改数据库存储引擎?我尝试过,但似乎没有选择。 问题答案: 登录后,转到要更改的表,然后单击“操作”选项卡。在这里,您可以更改存储类型以及其他一些选项 在线文件

  • Swift中的静态变量是如何存储的? > 如果我从未调用func usesticvar(),会发生什么?这些变量是否已初始化? 如果我调用useStaticVar()然后再也不访问它们,会发生什么?应收账

  • 问题内容: 我尝试将DECIMAL与(2,2)一起使用,但不允许我使用。 我只想存储一个数字,例如7.50或10.50。我需要将两个数字都保留在小数点后,但是当我刷新数据库时,它将值重置为0.99。有什么建议么? 问题答案: 声明的第一位数字是 总数 。您可能想要使用。这允许小数点前最多两位数,小数点后两位数。 文档:https : //dev.mysql.com/doc/refman/5.7/e

  • 问题内容: 我在MySQL中有两个表。表人具有以下列: 该列可以包含null或字符串数​​组,例如(’apple’,’orange’,’banana’)或(’strawberry’)等。第二个表是Table Fruit,具有以下三列: 那么,我应该如何设计第一个表中的列,以便它可以容纳从第二个表中的列获取值的字符串数组?由于MySQL中没有数组数据类型,该怎么办? 问题答案: 正确的方法是在查询中

  • 我在MySQL中有两个表。Table Person具有以下列: 水果列可以包含null或字符串数组,如('apple','orange','banana')或('草莓')等。第二个表是水果表,有以下三列: 那么,我应该如何设计第一个表中的水果列,以便它可以容纳从第二个表中的水果名称列获取值的字符串数组?既然MySQL中没有数组数据类型,我应该怎么做?

  • 问题内容: 目前,我正在使用一项服务来执行操作,即从服务器检索数据,然后将数据存储在服务器本身上。 取而代之的是,我想将数据放入本地存储中,而不是将其存储在服务器上。我该怎么做呢? 问题答案: 这是我存储和检索到本地存储的代码的一部分。我使用广播事件来保存和恢复模型中的值。