我们可以通过使用HttpClient类和JsonConvert类来向外部REST API发送请求,获取JSON数据并进行序列化和反序列化操作。以下是示例代码:
导出:
using System.Net.Http;
using Newtonsoft.Json;
// ...
public async Task ExportJsonFromExternalAPIAsync(string apiUrl)
{
using (var httpClient = new HttpClient())
{
var response = await httpClient.GetAsync(apiUrl);
if (response.IsSuccessStatusCode)
{
var responseContent = await response.Content.ReadAsStringAsync();
var json = JsonConvert.SerializeObject(responseContent);
return json;
}
else
{
// handle the error
}
}
}
导入:
using System.Net.Http;
using Newtonsoft.Json;
// ...
public async Task ImportJsonFromExternalAPIAsync(string apiUrl)
{
using (var httpClient = new HttpClient())
{
var response = await httpClient.GetAsync(apiUrl);
if (response.IsSuccessStatusCode)
{
var responseContent = await response.Content.ReadAsStringAsync();
var data = JsonConvert.DeserializeObject(responseContent);
return data;
}
else
{
// handle the error
}
}
}
这里我们使用了异步方法,因为外部REST API的响应时间可能会很长。我们使用Newtonsoft.Json NuGet软件包进行JSON序列化和反序列化操作。
用法示例:
var apiUrl = "https://jsonplaceholder.typicode.com/users";
var json = await ExportJsonFromExternalAPIAsync(apiUrl);
var users = await ImportJsonFromExternalAPIAsync>(apiUrl);
上面的代码将从指定的URL获取JSON数据,并导出为字符串。接着,我们使用泛型方法从同一URL导入JSON数据,并将其反序列化为User类的列表对象。