創建新的 ASP.NET Core Web API 項目

首先,您可以通過以下命令創建一個新的 Web API 項目:

dotnet new webapi -n JsonDemo
cd JsonDemo

上述命令將創建一個名為 JsonDemo 的新 API 項目。

在 ASP.NET Core 中,您只需從操作方法返回對象,框架會自動將對象序列化為 JSON 格式。例如,調用 GetProduct 端點時,返回的響應會自動以 JSON 格式呈現。


接收 JSON 數據

ASP.NET Core 會將傳入的 JSON 請求自動反序列化為方法參數或模型綁定。例如,以下代碼展示了如何通過 HTTP POST 請求接收一個 Product 對象:

[HttpPost]
public IActionResult CreateProduct([FromBody] Product product)
{
    if (product == null)
    {
        return BadRequest("Invalid product data.");
    }
    // 處理產品數據(例如保存到數據庫)
    return Ok(product);
}

通過 POST 請求發送以下 JSON 數據即可:

{
  "Id": 1,
  "Name": "Laptop",
  "Price": 1200
}

序列化與反序列化

序列化

序列化是指將對象轉換為 JSON 字符串的過程。在 ASP.NET Core 中,System.Text.Json 庫會自動完成這一操作。如果需要手動序列化,可以使用 JsonSerializer

var product = new Product { Id = 1, Name = "Laptop", Price = 1200 };
var jsonString = JsonSerializer.Serialize(product);

上述代碼會將 product 對象轉換為 JSON 字符串。

反序列化

反序列化是將 JSON 字符串轉換回對象的過程:

var jsonString = "{"Id":1,"Name":"Laptop","Price":1200}";
var product = JsonSerializer.Deserialize(jsonString);

這段代碼會將 JSON 字符串反序列化為 Product 對象。


使用 Newtonsoft.Json 進行高級自定義

雖然 System.Text.Json 是默認的 JSON 處理庫,但在某些情況下,您可能需要使用 Newtonsoft.Json,例如需要更高級的自定義功能或與舊項目兼容時。

安裝 Newtonsoft.Json

首先,安裝相關包:

dotnet add package Microsoft.AspNetCore.Mvc.NewtonsoftJson

然后,在 Startup.csProgram.cs 中配置:

builder.Services.AddControllers().AddNewtonsoftJson();

自定義 JSON 屬性

使用 Newtonsoft.Json,可以通過屬性自定義對象的序列化和反序列化方式:

public class Product
{
    [JsonProperty("product_id")]
    public int Id { get; set; }

    [JsonProperty("product_name")]
    public string Name { get; set; }    public decimal Price { get; set; }
}

上述代碼會生成以下 JSON 輸出:

{
  "product_id": 1,
  "product_name": "Laptop",
  "Price": 1200
}
public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }

    [JsonIgnore]
    public decimal Price { get; set; }
}

在 JSON 輸出中,Price 屬性將被排除。


自定義 System.Text.Json 的行為

System.Text.Json 也提供了一些自定義功能,例如控制屬性名稱、忽略空值或格式化輸出。以下代碼展示了如何全局修改 JSON 序列化選項:

builder.Services.AddControllers().AddJsonOptions(options =>
{
    options.JsonSerializerOptions.PropertyNamingPolicy = null; // 使用原始屬性名稱
    options.JsonSerializerOptions.WriteIndented = true;        // 格式化輸出
    options.JsonSerializerOptions.DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull; // 忽略空值
});

處理 JSON 數組和集合

ASP.NET Core Web API 還支持 JSON 數組和集合的處理。

返回 JSON 數組

以下代碼展示了如何返回一個 JSON 數組:

[HttpGet]
public IActionResult GetProducts()
{
    var products = new List
    {
        new Product { Id = 1, Name = "Laptop", Price = 1200 },
        new Product { Id = 2, Name = "Smartphone", Price = 800 }
    };

    return Ok(products);
}

返回的 JSON 數據如下:

[
  { "Id": 1, "Name": "Laptop", "Price": 1200 },
  { "Id": 2, "Name": "Smartphone", "Price": 800 }
]

接收 JSON 數組

以下代碼展示了如何接收一個 JSON 數組:

[HttpPost]
public IActionResult CreateProducts([FromBody] List products)
{

    if (products == null || !products.Any())    {
        return BadRequest("No products provided.");
    }    // 處理產品列表
    return Ok(products);
}

通過 POST 請求發送以下 JSON 數組即可:

[
  { "Id": 1, "Name": "Laptop", "Price": 1200 },
  { "Id": 2, "Name": "Smartphone", "Price": 800 }
]

總結

ASP.NET Core Web API 內置了對 JSON 數據的強大支持,無論是默認的 System.Text.Json,還是更靈活的 Newtonsoft.Json,都能滿足不同的開發需求。掌握 JSON 的序列化、反序列化以及自定義處理方式,將幫助您構建高效、可靠的 API,輕松與現代 Web 和移動應用程序集成。

原文鏈接: https://medium.com/@nwonahr/working-with-json-data-in-asp-net-core-web-api-fbc4f0ee39c4
熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業工程師共享工作效率翻倍的秘密
熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
返回頂部
上一篇
API協議設計的10種技術
下一篇
組織ASP.NET Core Minimal APIs - Tess Ferrandez
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
欧美一区二区三区免费大片 | 午夜精彩视频在线观看不卡| 日本不卡一区二区三区高清视频| 日本欧美一区二区三区| 91在线一区二区三区| 亚洲午夜日本在线观看| 日韩精品电影一区亚洲| 日韩三级中文字幕| 黑人巨大精品欧美黑白配亚洲| 久久久午夜精品理论片中文字幕| 不卡欧美aaaaa| 亚洲大片精品永久免费| 成人国产精品免费网站| 亚洲福利视频一区| 国产精品素人视频| 欧美草草影院在线视频| 欧美日韩电影在线播放| 7777精品伊人久久久大香线蕉| 日韩午夜电影在线观看| 欧美巨大另类极品videosbest| 国产精品一区二区在线观看网站 | 久久久久久久精| 亚洲精品一区在线观看| 欧美亚洲日本国产| 3d动漫精品啪啪一区二区竹菊| 日本一区二区免费在线| 欧美三级乱人伦电影| 丰满放荡岳乱妇91ww| 91蝌蚪porny| 91浏览器入口在线观看| 成人午夜激情片| 91小视频在线免费看| 欧美日韩一区二区三区不卡 | 欧美一区二区日韩一区二区| 91久久一区二区| 欧美大片在线观看一区二区| 日韩欧美久久一区| 成人美女视频在线看| 国产盗摄一区二区| 91色porny蝌蚪| 99久久精品99国产精品| 男女激情视频一区| 欧美色网站导航| 亚洲美女偷拍久久| av高清不卡在线| 国产亚洲综合在线| 美脚の诱脚舐め脚责91| 欧美视频精品在线观看| 国产欧美日韩麻豆91| 日韩欧美一区在线观看| 在线不卡中文字幕| 蜜桃视频免费观看一区| 亚洲韩国一区二区三区| 日韩国产欧美在线视频| 99久久国产综合精品色伊| 久久久99精品免费观看| 成人福利在线看| 亚洲一区二区三区小说| 91麻豆福利精品推荐| 午夜国产精品一区| 日韩视频国产视频| 一本久道中文字幕精品亚洲嫩| 国产精品久久久久精k8| 色婷婷av久久久久久久| 丝袜诱惑亚洲看片| 中文字幕第一页久久| 一道本成人在线| 久久www免费人成看片高清| 久久久精品综合| 波多野结衣91| 日韩欧美123| 久久综合九色综合97_久久久| 奇米四色…亚洲| 亚洲综合精品久久| 国产午夜三级一区二区三| 欧美精品久久久久久久久老牛影院| 调教+趴+乳夹+国产+精品| 精品国产91乱码一区二区三区| 国产不卡高清在线观看视频| 亚洲国产综合人成综合网站| 国产亚洲精品超碰| 欧美女孩性生活视频| 91在线视频免费观看| 国产精品 日产精品 欧美精品| 一区二区视频免费在线观看| 国产精品久久久久一区二区三区共| 日韩一级黄色大片| 日韩一本二本av| 中文字幕精品—区二区四季| 国产欧美视频在线观看| 欧美性感一区二区三区| 视频一区欧美日韩| 蜜桃久久精品一区二区| 琪琪一区二区三区| 99久久精品国产麻豆演员表| av在线不卡网| 日本高清无吗v一区| 在线免费观看日韩欧美| 欧美一区二区久久久| 欧美国产禁国产网站cc| 国产精品久久久久久久久免费相片 | 日韩精品1区2区3区| 国产欧美日韩精品a在线观看| 日本一区二区三区久久久久久久久不| 国产精品不卡在线| 精品福利一二区| 久久蜜桃av一区精品变态类天堂 | 亚洲欧美日韩久久精品| 粉嫩aⅴ一区二区三区四区| 欧美一区二区视频在线观看| 欧美国产欧美综合| 国产一区91精品张津瑜| 丝瓜av网站精品一区二区| 日韩综合一区二区| jizz一区二区| 亚洲女同女同女同女同女同69| 亚洲午夜成aⅴ人片| 精品视频1区2区| 久久精品国产亚洲一区二区三区| 国内成人精品2018免费看| 久久精品网站免费观看| 免费人成黄页网站在线一区二区| 一本一道波多野结衣一区二区 | 亚洲色欲色欲www| 国产二区国产一区在线观看| 久久99精品国产麻豆婷婷洗澡| 7777精品久久久大香线蕉 | 粉嫩av亚洲一区二区图片| 亚洲美女屁股眼交3| 色综合久久综合网| 激情小说亚洲一区| 久久婷婷一区二区三区| 成人av动漫网站| 日韩电影免费一区| 亚洲午夜激情网页| 国产精品午夜免费| 91蜜桃免费观看视频| 欧美经典一区二区| 国内成人自拍视频| 青青草一区二区三区| www.欧美亚洲| 国产精品夜夜嗨| 亚洲va欧美va天堂v国产综合| 91精品国产色综合久久不卡电影| 亚洲午夜av在线| 日韩精品一区二区三区在线观看| 色诱视频网站一区| 欧美优质美女网站| 成人性视频免费网站| 极品销魂美女一区二区三区| 美洲天堂一区二卡三卡四卡视频| 欧美一区永久视频免费观看| 91精品国产综合久久小美女| 色综合激情五月| 在线成人高清不卡| 精品国产乱子伦一区| 欧美激情一区二区三区在线| 国产精品高潮呻吟久久| 亚洲日本va午夜在线影院| 一区二区三区四区高清精品免费观看 | 亚洲一级二级在线| 国产精品第13页| 麻豆精品视频在线观看视频| 成人av先锋影音| 日韩欧美高清一区| 亚洲自拍另类综合| 国产精品羞羞答答xxdd| 在线综合亚洲欧美在线视频| 国产精品嫩草影院av蜜臀| 免费看黄色91| 蜜臀久久99精品久久久久久9| 95精品视频在线| 久久久精品国产免费观看同学| 欧美一个色资源| 日韩不卡手机在线v区| 欧美福利电影网| 精品久久久久久久久久久院品网| 一区二区在线看| 69精品人人人人| 亚洲综合免费观看高清完整版| 高清不卡一区二区| 国产精品欧美精品| 一本色道久久加勒比精品| 亚洲精品国产a久久久久久| 色婷婷综合久久| 精品亚洲免费视频| 日韩欧美国产不卡| 狠狠色丁香婷婷综合久久片| 国产不卡视频在线播放| 亚洲激情成人在线| 国产a精品视频| 欧美视频在线一区二区三区 | 91福利精品视频| 亚洲电影你懂得| 国产网站一区二区| 极品美女销魂一区二区三区| 一本色道**综合亚洲精品蜜桃冫| 无码av中文一区二区三区桃花岛| 久久91精品久久久久久秒播| 国产精品电影一区二区三区|