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

请求将基于Newtonsoft.Json的代码转换为System.Text.Json实现

将Newtonsoft.Json代码转换为System.Text.Json实现

原代码功能是解析JSON中myKey对应的数组,将元素转为大写后用逗号拼接。以下是基于System.Text.Json的等价实现:

转换后的代码

string myList = string.Empty;
string jSon = /* 来源数据 */;

// 使用JsonDocument解析JSON,需放在using块中自动释放资源
using JsonDocument doc = JsonDocument.Parse(jSon);
JsonElement root = doc.RootElement;

// 直接定位myKey属性,同时检查是否为数组类型
if (root.TryGetProperty("myKey", out JsonElement myKeyElement) && myKeyElement.ValueKind == JsonValueKind.Array)
{
    foreach (JsonElement item in myKeyElement.EnumerateArray())
    {
        // 确保元素是字符串类型后再处理
        if (item.ValueKind == JsonValueKind.String)
        {
            myList += item.GetString()?.ToUpper() + ',';
        }
    }
}

// 可选:移除末尾多余的逗号
if (!string.IsNullOrEmpty(myList))
{
    myList = myList.TrimEnd(',');
}

关键说明

  • 替代JObject的是JsonDocument,这是System.Text.Json中处理动态JSON的标准方式,必须通过using声明保证资源释放
  • 直接通过TryGetProperty定位目标属性,无需遍历所有键值对,效率更高
  • 增加了类型检查(数组类型、字符串元素),避免原代码中可能出现的类型转换异常
  • 将初始值从null!改为string.Empty,避免拼接时出现空引用错误
  • 额外添加了移除末尾逗号的逻辑,让最终结果更规范

测试示例

使用给定的JSON数据:

{"myKey":["fir","dsdsd"],"status":"ok"}

运行代码后,myList最终值为FIR,DSDSD(如果保留末尾逗号则为FIR,DSDSD,)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 07:20:54