You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在C#中如何正确向JSON字符串插入布尔变量

在C#的JSON字符串中正确插入布尔变量的方法

咱们先看看你代码里的问题:你把布尔变量b用双引号包裹起来了,这就导致生成的JSON里"Active"的值是字符串类型的"true",而不是JSON规范里的布尔类型true——这就是它无法正常工作的根源。

下面给你几种靠谱的解决办法,从简单到规范:

1. 修正手动字符串拼接(仅适合简单场景)

如果你坚持用手动拼接的方式,只需要去掉b两边的双引号就行:

var b = true;
var f = "{ \"templateName\": \"name\", \"Active\": " + b + "}";

这样生成的JSON会是:{"templateName": "name", "Active": true},Active就是正确的布尔类型了。不过要注意,这种方式只适合结构非常简单的JSON,一旦涉及复杂字段(比如包含特殊字符的字符串、嵌套结构),很容易出问题。

2. 用内置的System.Text.Json序列化(推荐,.NET Core 3.0+支持)

这是最规范的做法,类型安全还不容易出错。你可以先定义一个对应JSON结构的类,然后用序列化工具生成JSON:

首先定义实体类:

public class TemplateInfo
{
    [JsonPropertyName("templateName")]
    public string TemplateName { get; set; }
    
    [JsonPropertyName("Active")]
    public bool Active { get; set; }
}

然后创建实例并序列化:

var b = true;
var template = new TemplateInfo 
{ 
    TemplateName = "name", 
    Active = b 
};
var f = System.Text.Json.JsonSerializer.Serialize(template);

如果不想专门定义类,也可以用匿名对象简化:

var b = true;
var f = System.Text.Json.JsonSerializer.Serialize(
    new { templateName = "name", Active = b }
);

3. 用Newtonsoft.Json(Json.NET)序列化(兼容旧.NET框架)

如果你用的是.NET Framework或者习惯用Json.NET,步骤类似,先安装Newtonsoft.Json NuGet包,然后:

var b = true;
var f = Newtonsoft.Json.JsonConvert.SerializeObject(
    new { templateName = "name", Active = b }
);

小提醒

尽量避免手动拼接JSON,尤其是复杂结构的情况——序列化工具会自动处理转义字符、类型转换等问题,能帮你避开很多坑。

内容的提问来源于stack exchange,提问作者fazlook1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:27:41