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

如何在C# ASP.NET中通过拆分JSON字符串实现条件校验?

解决方案

直接通过字符串拆分来处理JSON是非常不可靠的(比如JSON字段顺序调整、值中包含特殊字符时都会出错),推荐使用C#官方的JSON解析库来处理,以下是两种可靠的实现方式:

方式一:定义实体类解析(推荐,类型安全)

首先定义和JSON结构匹配的实体类,然后用System.Text.Json(.NET Core 3.0+内置)解析整个JSON字符串:

// 定义对应实体类
public class AuthInfo
{
    [JsonPropertyName("IsAuthenticated")]
    public bool IsAuthenticated { get; set; }
    // 如果JSON还有其他字段,可以在这里补充
}

// 解析并判断
var authInfo = JsonSerializer.Deserialize<AuthInfo>(jsonString);
if (authInfo?.IsAuthenticated == true)
{
    // 这里执行你需要的特定操作
}

方式二:动态解析JSON(无需定义实体类)

如果不想创建实体类,可以直接解析JSON文档获取字段值:

using System.Text.Json;

// 解析JSON文档
using var jsonDoc = JsonDocument.Parse(jsonString);
bool isAuthenticated = jsonDoc.RootElement.GetProperty("IsAuthenticated").GetBoolean();

if (isAuthenticated)
{
    // 执行特定操作
}

(不推荐)基于你当前拆分逻辑的临时处理

如果你一定要沿用现有的字符串拆分方式,可以对拆分后的字符串做清洗和解析:

string[] strMyObjects = jsonString.Split(',');
string strValidCheck = strMyObjects[0];

// 清洗字符串并提取值
var cleanedStr = strValidCheck.TrimStart('{', ' ');
var keyValuePair = cleanedStr.Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries);

if (keyValuePair.Length == 2)
{
    string valueStr = keyValuePair[1].Trim().Trim('"');
    if (bool.TryParse(valueStr, out bool isAuthenticated) && isAuthenticated)
    {
        // 执行特定操作
    }
}

注意:这种字符串处理方式只适用于当前特定的JSON格式,一旦JSON结构(比如空格、字段顺序、引号格式)发生变化,代码就会失效,因此强烈建议使用前面的JSON解析方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:07:37