上面的代码使用JsonNode,而不使用Newtonsoft.Json命名空间
时间: 2023-12-06 10:47:45 浏览: 119
好的,如果你不想使用 `Newtonsoft.Json` 命名空间,你可以使用 `System.Text.Json` 来处理 JSON 数据。以下是使用 `System.Text.Json` 的修改后的代码:
```csharp
public static async Task<List<string>> QueryObjectInformation()
{
string apiUrl = "https://example.com/query-object"; // 替换为实际的接口地址
// 构造请求参数
var requestData = new
{
type = "Q0004",
data = new
{
wxid = "wxid_3sx9sjgq99kd22"
}
};
using (var httpClient = new HttpClient())
{
// 将请求参数转换为 JSON 字节流
var jsonRequestData = JsonSerializer.SerializeToUtf8Bytes(requestData);
// 发送 POST 请求
var response = await httpClient.PostAsync(apiUrl, new ByteArrayContent(jsonRequestData)
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
});
// 获取响应内容
var jsonResponseData = await response.Content.ReadAsStreamAsync();
// 使用 JsonDocument 解析响应内容
using (var jsonDocument = await JsonDocument.ParseAsync(jsonResponseData))
{
// 将响应内容转换为 List<string> 对象
List<string> responseObject = new List<string>();
foreach (var element in jsonDocument.RootElement.EnumerateArray())
{
responseObject.Add(element.GetString());
}
return responseObject;
}
}
}
```
上述代码中使用了 `System.Text.Json` 的 `JsonSerializer` 类来处理 JSON 数据。同时,使用 `JsonDocument` 类来解析响应内容,并将其转换为 `List<string>` 对象。请确保在项目中引用以下命名空间:
```csharp
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
```
这样,你就可以使用 `QueryObjectInformation` 函数来测试查询对象信息的接口,并获得返回的 `List<string>` 对象,而不使用 `Newtonsoft.Json` 命名空间。
阅读全文