【问题标题】:Change JSON structure to send in API post request更改 JSON 结构以发送 API 发布请求
【发布时间】:2020-10-31 07:33:39
【问题描述】:

我在 Angular 8 中进行 API POST 调用。我必须在调用中发送一个 JSON 对象,该对象应该是结构:

-{}JSON
  -{}data
     -[]exp
        +{} 0
        +{} 1

但我以这种格式发送数据:

-[]JSON
   +{} 0
   +{} 1

在我的打字稿中,我在名为 receivedData 的数组中获得了两个对象 {}0, {}1,然后我将数据存储为:

this.changedData = this.receivedData;
this.postService.postMethod(this.headers, this.changedData)

在我的帖子服务中:

postMethod(header, changedData): Observable<any[]> {
return this.http.post<any>(`the url here`, changedData, {headers: header, responseType: 'text' as 'json'})
.pipe(map(response => {
return response;
}))
}

如何以上述格式发送数据?我希望 changedDetails 的 json 结构与顶部提到的相同,具有相同的命名约定,例如:{}data and []exp 如何将receivedData objects 推送到 exp[] 然后我可以将其发送到 data{} 然后将是完全推入changedDetails {}

【问题讨论】:

    标签: json angular typescript api angular8


    【解决方案1】:

    我们在同一页面上,我想象您正在接收具有以下形状的数据:

    [ { ... },  { ... } ]
    

    而你想把它变成这个形状:

    {
      data: {
        exp: [ { ... }, { ... } ]
      }
    }
    

    (如果不是这样,请告诉我。) 如果这是正确的,那么转换就非常简单了:只需像这样创建一个新的对象字面量:

    this.changedData = {
      data: {
        exp: this.receivedData,
      },
    };
    

    【讨论】:

    • 我在同一个地方,但是如何在 Angular 8 打字稿中做到这一点?如何将我的数据转换为您提到的格式。 Typescript 会报错,对吧?
    • 这取决于是否声明了this.changedData,以及它被赋予了什么类型。您是否尝试过它是否会产生任何错误?
    • 哇,这就像一个魅力。我对 Angular 比较陌生,不知道我们可以这么轻松地使用 JSON 结构。谢谢你。标记为已接受的答案。干杯!
    • 谢谢!我很高兴这有帮助。是的,JavaScript/TypeScript 允许你做很多“偷看”。干杯!
    猜你喜欢
    • 1970-01-01
    • 2021-09-06
    • 2014-12-08
    • 2018-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多