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

如何获取JToken中带CUSTOM.前缀的属性并反序列化为CustomizedData列表

实现方案

你可以直接用Newtonsoft.Json自带的API遍历JToken属性完成过滤,全程仅读取数据,不会修改原始JToken内容,代码示例如下:

using Newtonsoft.Json.Linq;
using System.Collections.Generic;
using System.Linq;

// 入参为你的原始JToken对象
public List<CustomizedData> ExtractCustomProperties(JToken originJToken)
{
    // 仅做类型转换,不修改原始数据
    JObject originJObj = originJToken as JObject;
    if (originJObj == null)
    {
        return new List<CustomizedData>();
    }

    // 过滤前缀匹配的属性并映射为目标类实例
    return originJObj.Properties()
        .Where(prop => prop.Name.StartsWith("CUSTOM."))
        .Select(prop => new CustomizedData
        {
            PropertyName = prop.Name,
            Value = prop.Value.ToString()
        })
        .ToList();
}

补充说明

  • 如果你需要把属性名中的CUSTOM.前缀去掉,将PropertyName = prop.Name修改为PropertyName = prop.Name.Remove(0, "CUSTOM.".Length)即可
  • 若属性值存在非字符串类型,可根据业务需要调整Value的转换逻辑,上述代码默认取序列化后的字符串值
  • 所有操作均为只读操作,不会修改原始JToken的任何内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:09:02