我想在每个字符串项的列表中添加双引号,这样我就可以发出JSON请求发送到api。var response=默认值(HttpResponseMessage(;使用var httpClient=CreateHttpClientForRequest((;
var kpis = string.Join<string>(",", (IEnumerable<string>)keyProcessInstance);
using var requestMessage = new HttpRequestMessage(HttpMethod.Delete, PathfinderDeleteActiveUri)
{
Content = new StringContent ($@"[""{kpis}""]", Encoding.UTF8, "application/json")
};
我需要kpis变量中的这种格式。[字符串1,字符串2,字符串]
但不能加上"对于kpi中的每个字符串。
您应该使用System.Text.Json.JsonSerializer
将列表序列化为JSON。
using System.Text.Json;
...
string kpis = JsonSerializer.Serialize(keyProcessInstance);
using var requestMessage = new HttpRequestMessage(HttpMethod.Delete, PathfinderDeleteActiveUri)
{
Content = new StringContent(kpis, Encoding.UTF8, "application/json")
};
仅用于教育目的,这是您可以通过自己的方法使其发挥作用的方法。
var kpis = string.Join<string>("","", (IEnumerable<string>)keyProcessInstance);
using var requestMessage = new HttpRequestMessage(HttpMethod.Delete, PathfinderDeleteActiveUri)
{
Content = new StringContent($"["{kpis}"]", Encoding.UTF8, "application/json")
};
必须使用反斜杠才能在字符串"
中使用引号。
您不需要引用数组值,JSON序列化程序会自动执行。在.NET5及更高版本中,您可以使用JsonContent.Create创建一个JsonContent对象,该对象自动序列化其有效负载:
var jsonContent=JsonContent.Create(keyProcessInstance);
using var requestMessage = new HttpRequestMessage(HttpMethod.Delete, uri)
{
Content = jsonContent
};
await client.SendAsync(requestMessage);
JsonContent的默认媒体类型为application/json
,带有CharSetutf-8