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

C#如何从SOAP获取的JSON属性中提取指定字段值生成新字符串

C#从JSON字符串属性提取指定节点值实现方案

你不需要手写正则匹配JSON内容,直接用成熟的JSON解析库即可稳定实现取值,以下提供两种常用实现路径:

  • 方案1:使用 Newtonsoft.Json(Json.NET)
    这是C#生态兼容性最好的第三方JSON库,适配.NET Framework全版本、.NET Core/.NET 5+全版本,使用前需确保项目已安装Newtonsoft.Json NuGet包。

    1. 引入命名空间
    using Newtonsoft.Json.Linq;
    
    1. 核心取值与生成新字符串代码
    // 此处entity为你持有Lisainfo属性的实体类实例
    JObject lisainfo = JObject.Parse(entity.Lisainfo);
    // 按层级提取Lehekylg节点下的JrnNr数值
    int jrnNr = lisainfo["Lehekylg"]?["JrnNr"]?.Value<int>() ?? 0;
    // 基于提取值生成目标新字符串,可按需调整拼接格式
    string newGeneratedStr = $"当前提取到的JrnNr编号为{jrnNr}";
    

    代码中加了空传播判断,即使节点不存在也不会抛出空引用异常,默认返回0,可按需调整默认值。

  • 方案2:使用 System.Text.Json
    这是.NET Core 3.0、.NET 5及以上版本自带的官方JSON解析库,无需额外安装第三方依赖。

    1. 引入命名空间
    using System.Text.Json.Nodes;
    
    1. 核心取值与生成新字符串代码
    // 此处entity为你持有Lisainfo属性的实体类实例
    JsonNode lisainfo = JsonNode.Parse(entity.Lisainfo);
    // 按层级提取Lehekylg节点下的JrnNr数值
    int jrnNr = lisainfo["Lehekylg"]?["JrnNr"]?.GetValue<int>() ?? 0;
    // 基于提取值生成目标新字符串,可按需调整拼接格式
    string newGeneratedStr = $"当前提取到的JrnNr编号为{jrnNr}";
    

注意:JSON结构存在格式变动的可能性,不要用字符串截取、正则硬匹配的方式取值,很容易因为空格、换行、属性顺序调整出现取值失败的问题,用结构化解析库是生产环境的稳妥选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 19:39:39