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

求助:使用Newtonsoft JSON+C#解析JSON并验证指定字段存在性

解决C#结合Newtonsoft JSON查找指定Top2对应的Top3数组并校验值的问题

没问题,我来帮你搞定这个需求!首先我得先假设你的JSON结构(毕竟你没贴完整的JSON内容,我按常规场景来推测),然后一步步实现你要的功能:找到Top2为Police的项对应的Top3数组,再校验里面是否存在Test1Child值。

第一步:明确假设的JSON结构

我假设你的JSON文件内容大概是这样的(如果实际结构有差异,你可以对应调整代码里的字段名):

{
  "Top1": [
    {
      "Top2": "Police",
      "Top3": ["Test1Child", "Test2Child", "Test3Child"]
    },
    {
      "Top2": "FireDepartment",
      "Top3": ["FireChild1", "FireChild2"]
    }
  ]
}

第二步:完整实现代码

基于你已有的代码,我补充完整的逻辑:

using Newtonsoft.Json.Linq;
using System.IO;
using System.Linq;

// 你已有的读取和解析代码
var json = File.ReadAllText(jsonFile);
var jObject = JObject.Parse(json);
var top1Array = (JArray)jObject["Top1"];

// 定义你的输入参数
string targetTop2 = "Police";
string checkValue = "Test1Child";

// 找到Top1数组中Top2等于Police的对象
var matchedItem = top1Array.FirstOrDefault(item => 
    item["Top2"]?.ToString() == targetTop2);

if (matchedItem != null)
{
    // 提取对应的Top3数组,用as转换避免强制转换出错
    var top3Array = matchedItem["Top3"] as JArray;
    
    if (top3Array != null)
    {
        // 检查数组中是否存在目标值
        bool hasTargetValue = top3Array.Any(item => 
            item.ToString() == checkValue);
        
        if (hasTargetValue)
        {
            // 这里可以替换成你需要的业务逻辑,比如返回结果、打日志等
            System.Console.WriteLine($"✅ Top3数组中存在{checkValue}");
        }
        else
        {
            System.Console.WriteLine($"❌ Top3数组中不存在{checkValue}");
        }
    }
    else
    {
        System.Console.WriteLine($"⚠️ 找到的Top2为{targetTop2}的项没有对应的Top3数组");
    }
}
else
{
    System.Console.WriteLine($"⚠️ 未找到Top2为{targetTop2}的项");
}

关键逻辑说明

  • 安全筛选匹配项:用FirstOrDefault而不是First,这样当找不到Top2为Police的项时不会抛出异常,而是返回null,方便后续判断。
  • 安全转换数组:用as JArray代替强制转换(JArray),如果Top3不是数组或者不存在,会返回null,避免空引用异常。
  • 高效检查值存在:用Linq的Any方法快速判断数组中是否包含目标值,比手动循环更简洁高效。

如果你的实际JSON结构和我假设的有差异(比如Top3是对象数组而非字符串数组),你只需要调整Any里的判断逻辑就行,比如如果Top3是{"Name": "Test1Child"}这种结构,就改成item["Name"]?.ToString() == checkValue。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:15:50