【问题标题】:How to send complex nested JSON from Angular Typescript to Web Api?如何将复杂的嵌套 JSON 从 Angular Typescript 发送到 Web Api?
【发布时间】:2018-07-12 09:46:34
【问题描述】:

I have 2 issues with my json data as I am use to sending it "flat"

示例打字稿类模型

UserID: number;
AppID: number;
Key: string;
HearingsAndEventsType: number

过去我会这样发送。

{
   "UserID": 61525,
   "AppID": 15,
   "Key": "abc",
   "HearingsAndEventsType": 1
}

不再,我必须作为嵌套对象发送,对 JSON 对象进行 2 处更改

  1. “PageQueryString”:{...
  2. }, “HearingsAndEventsType”:1

因此,我需要发送的强制结构将看起来像这样

{
  "PageQueryString": {
      "UserID": 61525,
      "AppID": 15,
      "Key": "abc"
},
    "HearingsAndEventsType": 1
}

我试图在下面的链接中提出问题,但我认为它的长度太长,人们无法理解我需要什么。因此,其他问题几乎是一样的......所以对于善良和聪明的人来说,2个问题的价格是 1 。谢谢

Angular Typescript sending complex json data to web api when model is flat

基本我使用 JSON stringify 并尝试发送模型,但我需要其他 json

 getPageCommonData(menu: Menu)  {
    return this.http.post(pageCommonData, JSON.stringify(menu), httpOptions)
  ....
 }

【问题讨论】:

  • ...您可以像发送“平面”对象一样发送“复杂”对象。如果这对您不起作用,您至少应该描述您的尝试以及尝试时发生的情况。
  • ...请不要转发,如果您的问题措辞不当,您应该编辑它。

标签: javascript json angular typescript angular-httpclient


【解决方案1】:

你只需要创建两个模型:

class QueryString {
    UserID: number;
    AppID: number;
    Key: string;
}

class Menu {
    PageQueryString: QueryString;
    HearingsAndEventsType: number;
}

【讨论】:

  • 好的,很酷,你能帮我理解一下吗?那么我会做http.post(pageCommonData, JSON.stringify(OtherModel), httpOptions 吗?
  • 以上将基于如果 getPageCommonData(othermodel: OtherModel 然后 JSON.stringify(othermodel) ...
  • 是的。根据需要填写值后,此模型应生成所需的 json。我只是将其称为 OtherModel 因为我没有看到您的编辑。你可以随便叫它。
  • 嘿,所以我的另一个问题的链接描述了所有组件和服务数据,有一个人只是简单地建议“json.parse 有什么问题”,我猜他不明白Web Api 怎么会神奇地知道使用复杂的结构?
猜你喜欢
  • 1970-01-01
  • 2019-05-20
  • 1970-01-01
  • 1970-01-01
  • 2017-04-07
  • 1970-01-01
  • 2020-03-15
  • 1970-01-01
  • 2020-04-02
相关资源
最近更新 更多