C#是一種面向?qū)ο蟮木幊陶Z言,廣泛用于Windows操作系統(tǒng)上的開發(fā)。在開發(fā)過程中,使用JSON作為數(shù)據(jù)交換格式是常見的。本文將介紹如何在C#中發(fā)送和接收J(rèn)SON數(shù)據(jù)。
發(fā)送JSON數(shù)據(jù):
using System; using System.Net.Http; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; namespace SendingJsonExample { class Program { static async Task Main(string[] args) { var payload = new { Name = "John", Age = 30 }; var json = JsonConvert.SerializeObject(payload); using (var client = new HttpClient()) { client.BaseAddress = new Uri("https://example.com/"); var response = await client.PostAsync("/api/user", new StringContent(json, Encoding.UTF8, "application/json")); } } } }
以上代碼使用HttpClient發(fā)送JSON數(shù)據(jù)。首先,創(chuàng)建了一個名為payload的匿名對象,然后使用JsonConvert.SerializeObject方法將其轉(zhuǎn)換為JSON格式。接下來使用HttpClient發(fā)送POST請求到指定的URL,傳遞JSON數(shù)據(jù)作為請求體。
接收J(rèn)SON數(shù)據(jù):
using System; using System.Net.Http; using System.Threading.Tasks; using Newtonsoft.Json; namespace ReceivingJsonExample { class Program { static async Task Main(string[] args) { using (var client = new HttpClient()) { client.BaseAddress = new Uri("https://example.com/"); var response = await client.GetAsync("/api/user/1"); var content = await response.Content.ReadAsStringAsync(); var user = JsonConvert.DeserializeObject(content); Console.WriteLine($"Name: {user.Name}, Age: {user.Age}"); } } } class User { public string Name { get; set; } public int Age { get; set; } } }
以上代碼使用HttpClient接收J(rèn)SON數(shù)據(jù)。首先,使用HttpClient發(fā)送GET請求到指定的URL,接下來讀取響應(yīng)的內(nèi)容,最后使用JsonConvert.DeserializeObject方法將JSON數(shù)據(jù)轉(zhuǎn)換回User對象。
在以上兩個例子中,我們都使用了Newtonsoft.Json庫來處理JSON數(shù)據(jù)。這是C#中最流行的JSON庫之一,具有易用性和高性能。