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

主站蜘蛛池模板: 国内精品一区二区 | 人人看人人干 | 区三区放荡人妇 | 精品三级国产在线看 | 国产精品毛 | 国产精品国产精品 | 国产免费蜜桃视频网 | 国产综合亚洲免费 | 国产精品亚洲а | 爱豆传媒免费播放 | 1024永久亚洲の | 国产香线 | 国内精品免费久 | 日韩午夜a级剧场 | 欧美性爱一级电影 | 欧美日韩综合精品网 | 海派阅读 | 日本欧美大 | 日韩视频一区二区 | 国产精品自在线 | 国产素人搭讪在线 | 成人影片网址 | 国产香线| 日韩欧美高清一区 | 国产女人在线观看 | 强奷有码在线播放 | 97在线视频人 | 欧美日韩国产亚洲一 | 国产美女主播在线 | 日韩欧美精品最新 | 国产淫片免费看 | 欧美亚洲韩日国产 | 日韩AⅤ美女AⅤ视 | 97成人免费理 | 日韩高清在线第一页 | 国产夜趣福利免费 | 国产导航精品 | 日韩一二区| 国产日韩欧 | 日本大骚b视频 | 国产又湿又 |