在列表中添加双引号,以JSON发送API请求



我想在每个字符串项的列表中添加双引号,这样我就可以发出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

相关内容

  • 没有找到相关文章

最新更新