91网首页-91网页版-91网在线观看-91网站免费观看-91网站永久视频-91网站在线播放

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

webapi控制器如何讀取多級json

Ccoffee
2025年4月17日 17:10 本文熱度 268
:webapi控制器如何讀取多級多層嵌套的json

1. 定義與 JSON 結構匹配的 C# 模型類

假設客戶端發送的 JSON 結構如下:

{

  "user": {

    "name": "發到付的",

    "age": 30

  },

  "roles": ["admin", "editor"],

  "metadata": {

    "createdAt": "2023-10-01",

    "active": true

  }

}

對應的模型類定義:

public class PostRequestModel

{

    public User User { get; set; }

    public List<string> Roles { get; set; }

    public Metadata Metadata { get; set; }

}


public class User

{

    public string Name { get; set; }

    public int Age { get; set; }

}


public class Metadata

{

    public string CreatedAt { get; set; }

    public bool Active { get; set; }

}

2. 創建 Web API 控制器(支持 POST 方法)

在 App_Code 或項目根目錄中創建控制器(如 DataController.cs):

using System.Web.Http;

using System.Net.Http;


public class DataController : ApiController

{

    [HttpPost] // 明確標記為 POST 方法

    public HttpResponseMessage PostData(PostRequestModel model)

    {

        if (model == null)

        {

            return Request.CreateResponse(

                System.Net.HttpStatusCode.BadRequest, 

                new { Error = "請求體為空" }

            );

        }


        // 處理數據(示例:返回接收到的數據)

        return Request.CreateResponse(

            System.Net.HttpStatusCode.OK, 

            new { 

                UserName = model.User.Name, 

                RoleCount = model.Roles.Count 

            }

        );

    }

}

客戶端發送 POST 請求

$.ajax({

    url: '/api/data', // 對應 DataController

    type: 'POST',

    contentType: 'application/json',

    data: JSON.stringify({

        user: { name: "發到飯否", age: 30 },

        roles: ["admin", "editor"],

        metadata: { createdAt: "2023-10-01", active: true }

    }),

    success: function(response) {

        console.log(response);

    }

});

完整代碼示例

DataController.cs

using System.Web.Http;

using System.Net.Http;

using System.Runtime.Serialization;


public class DataController : ApiController

{

    [HttpPost]

    public HttpResponseMessage PostData(PostRequestModel model)

    {

        if (model == null)

        {

            return Request.CreateResponse(

                System.Net.HttpStatusCode.BadRequest, 

                new { Error = "Invalid request body" }

            );

        }


        // 業務邏輯處理

        return Request.CreateResponse(

            System.Net.HttpStatusCode.OK, 

            new { 

                Message = $"Received: {model.User.Name}, Roles: {model.Roles.Count}"

            }

        );

    }

}


[DataContract]

public class PostRequestModel

{

    [DataMember]

    public User User { get; set; }


    [DataMember]

    public List<string> Roles { get; set; }


    [DataMember]

    public Metadata Metadata { get; set; }

}


[DataContract]

public class User

{

    [DataMember(Name = "name")]

    public string Name { get; set; }


    [DataMember(Name = "age")]

    public int Age { get; set; }

}


[DataContract]

public class Metadata

{

    [DataMember(Name = "createdAt")]

    public string CreatedAt { get; set; }


    [DataMember(Name = "active")]

    public bool Active { get; set; }

}


該文章在 2025/4/17 18:28:51 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 午夜成人精| 国产精品午夜看片 | 日韩视频www永 | 91蜜桃传媒吴梦梦 | 国产精品视频色拍拍 | 精品熟女碰| 国产亚洲老 | 国产无须下载的免 | 欧美性爱150p | 欧美在线综合 | 91午夜福利电影 | 国产乱理伦片 | 欧美午夜性春 | 日本簧片在线观 | 国精品吹潮 | 日韩视频一区二区 | 中文字幕亚洲网址 | 国产真实伦在线播放 | 国产喷水抽搐视频 | 日韩一三区免费影视 | 日本不卡视频 | 国产乱子伦l精品 | 中文字幕乱码无 | 国产视频一区四区 | 国产网红主播 | 三级网站在线观看 | 国产嫖妓正在播放 | 不卡国产视频第一页 | 91看片| 精品国产欧美 | 国产一区二区三区不 | 成人午夜三 | 国产又黄又粗又大 | 国产美女精品 | 国产伦子伦对白视频 | 国外精品 | 91九色国产 | 国产精品精品二区 | 国产69精| 欧美午夜激情影院 | 国产最新三级 |