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

Newtonsoft.Json反序列化报Invalid JavaScript property identifier错误如何修复

错误原因

你手动拼接的JSON格式不符合规范:EntityIDsList对应的是数组类型,你直接拼接了逗号分隔的数值,没有用方括号[]包裹,最终生成的paramList实际内容为:

{'ProjectId':202, 'EntityIDsList': 2000,2001,2002}
Newtonsoft.Json解析到2000后的逗号时,会默认后续内容是下一个JSON属性名,碰到直接跟的数值2001就会抛出非法属性标识符的异常。

修复方案

方案1:快速修改拼接逻辑

给EntityIDsList对应的数值部分加方括号包裹即可:

var paramList = @"{'ProjectId':" + id + ", 'EntityIDsList': [" + stringOfIds + "]}";

修改后生成的JSON符合数组格式,可正常解析。

方案2:推荐:避免手动拼接JSON

手动拼接JSON极易出现转义、格式类错误,更稳妥的做法是直接构造目标对象,不需要走JSON序列化反序列化流程:

var parameters = new Dictionary<string, object>
{
    {"ProjectId", id},
    {"EntityIDsList", list}
};

如果确实有生成JSON字符串的需求,也可以通过序列化匿名对象的方式生成,完全避免手动拼写错误:

var paramObj = new { ProjectId = id, EntityIDsList = list };
string paramList = JsonConvert.SerializeObject(paramObj);
var parameters = JsonConvert.DeserializeObject<Dictionary<string, object>>(paramList);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:24:07