如何添加布尔值以形成内容 C#

Posted

技术标签:

【中文标题】如何添加布尔值以形成内容 C#【英文标题】:How do I add boolean to form content C# 【发布时间】:2021-03-01 16:55:47 【问题描述】:

我正在向站点发送数据,但是当我将true 添加到表单内容时,它会将其添加为string。如何将其转换为Boolean 类型?

我想要的结果:

我的实际结果:

HttpClient client = new HttpClient();
StringContent content = new StringContent("\"password\":\"123123asd\"," + "\"remember_me\":\""+true+"\"," + "\"username\":\"" +"feridisgenderli"+ "\"");
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var response = await client.PostAsync(LoginAPI.ToString(), content);
var stringContent = await response.Content.ReadAsStringAsync();
Console.Write(stringContent);

【问题讨论】:

不要发布代码图片,发布代码本身。 出于偏好,不要手动构建 JSON,这样就不会有语法问题。构建一个对象,然后使用知道如何正确序列化的已建立的代码库(例如 Newtonsoft.JSON 或类似的代码库)将其序列化为 JSON,要简单得多、更易读且不易出错。 需要记住的一点,传递这样的凭据真的很糟糕。我会联系这个 API 的所有者。 【参考方案1】:

你专门用引号括起来:

StringContent content = new StringContent("\"password\":\"123123asd\"," + "\"remember_me\":\""+true+"\"," + "\"username\":\"" +"feridisgenderli"+ "\"");

不要那样做,它不会有引号:

StringContent content = new StringContent("\"password\":\"123123asd\"," + "\"remember_me\":true," + "\"username\":\"" +"feridisgenderli"+ "\"");

但更一般地说,您通常不会使用字符串构建 JSON。使用对象并将其序列化为 JSON 格式。

【讨论】:

【参考方案2】:

首先,您要连接一个字符串。这在具有布尔类型的 C# 中恰好是可以的,但并非所有语言都会将 true 转换为 "true"。考虑serializing an object instead。

c# 代码"\"remember_me\":\""+true+"\"," 将导致"remember_me": "true",,因为您在布尔值周围包含了\",即:

Console.Write("\"" + true + "\""); // -> "true"
Console.Write("" + true); // -> true

【讨论】:

以上是关于如何添加布尔值以形成内容 C#的主要内容,如果未能解决你的问题,请参考以下文章

Python:将字符串列表转换为布尔值,其中布尔值以字符串形式存在[重复]

C# 布尔评估未按预期进行评估

无法使用 spring boot 和 postgresql 获取布尔值以进行插入

更新全局布尔值以启动或停止函数

Knex.js 和 MySQL:将整数转换为布尔值以进行批量选择

如何在 C# 中读取 CArchive 布尔值