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

Json.NET:将JObject添加到JArray时报错,求排查解决

问题分析与解决

嘿,问题出在你JObject的初始化方式上,不是添加到JArray的步骤有误哦。

错误根源

你写的new JObject { "Name", "John" }这种集合初始化写法,会把两个字符串(被自动转成JValue类型)挨个往JObject里加,但JObject的结构要求必须是键值对形式的JProperty——它根本不接受直接添加JValue,这才是后续往JArray里加的时候抛出异常的原因(因为这个JObject本身的内部结构就不符合规范啦)。

正确的写法

有两种简单的方式可以创建合法的JObject:

  1. 显式使用JProperty来定义键值对:
JObject obj = new JObject { new JProperty("Name", "John") };
JArray array = new JArray();
array.Add(obj); // 这时候就能正常运行了
  1. 用简化的嵌套大括号语法(更常用):
JObject obj = new JObject { { "Name", "John" } };
JArray array = new JArray();
array.Add(obj); // 同样没问题

拓展小技巧

如果要给JObject加多个属性,直接继续添加嵌套的键值对就行:

JObject obj = new JObject 
{ 
    { "Name", "John" },
    { "Age", 30 },
    { "IsStudent", false }
};

这样创建出来的JObject是完全符合Newtonsoft.Json规范的,往JArray里添加自然就不会报错啦。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:32:49