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

如何在Newtonsoft中实现类似JsonObject的ContainsKey与Add功能

改用Newtonsoft.Json实现对应功能的方案

Newtonsoft.Json中对应System.Text.Json.Nodes.JsonObject的类型是JObject,它原生支持你需要的ContainsKey和Add方法,用法和原代码几乎一致。以下是完整的替换代码:

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

JObject? content;
try
{
    content = JObject.Parse(stringContent);
}
catch (JsonReaderException e)
{
    // 日志记录
}

if (content?.ContainsKey("Test") == true)
{
    continue;
}

content?.Add("Test", "blah blah");
string newContent = JsonConvert.SerializeObject(content, Formatting.Indented);

关键对应点说明

  • 反序列化:原代码的JsonSerializer.Deserialize<JsonObject>对应Newtonsoft的JObject.Parse(也可使用JsonConvert.DeserializeObject<JObject>,效果一致)
  • 键存在判断:JObject.ContainsKey和原JsonObject.ContainsKey用法完全相同
  • 添加键值对:JObject.Add和原JsonObject.Add用法一致
  • 序列化缩进:原代码的WriteIndented = true对应Newtonsoft的Formatting.Indented

关于转义问题

Newtonsoft.Json默认的字符转义策略和System.Text.Json不同,不会将&&转义为\u0026、"转义为\u0022,正好能解决你遇到的转义异常问题。如果需要更精细控制转义规则,还可以通过JsonSerializerSettings的StringEscapeHandling属性调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 15:15:44