使用Salesforce Tooling API创建自定义字段报错求助
解决Salesforce Tooling API创建自定义字段的JSON解析错误
我来帮你分析下这个JSON解析错误的根源,以及对应的修复方案:
错误原因拆解
根据报错信息Cannot deserialize instance of complexvalue from VALUE_STRING value text,结合你的请求体来看,主要有这几个不符合Tooling API规范的问题:
- 字段类型值格式错误:Salesforce Tooling API要求字段类型的枚举值必须是首字母大写的格式,你写的
"text"不符合规范,应该改为"Text"。系统收到小写的text时,无法匹配到正确的枚举类型,进而抛出解析错误。 - 多余的无效字段:文本类型字段并不支持
precision属性,这个属性是给数字、货币等数值型字段使用的,你传递null反而会干扰JSON解析逻辑,需要移除这个字段。 - 传递了只读字段:
ManageableState是系统自动维护的只读字段,创建自定义字段时不需要手动传入,这个字段的存在也会干扰解析流程。
修正后的请求体
{ "DeveloperName": "CusField", "Metadata": { "type": "Text", "description": "test", "inlineHelpText": "testhelp", "label": "cus Field", "required": false, "length": 255, "unique": false, "externalId": false, "trackHistory": false }, "TableEnumOrId": "Account" }
额外提示
- 建议使用v58.0及以上的稳定Tooling API版本,避免兼容性问题。
DeveloperName不能包含空格或特殊字符,你的CusField是符合要求的。- 如果后续要创建其他类型的字段(比如Picklist、Number),需要对应调整Metadata里的属性:比如数字类型要添加
precision和scale,Picklist要嵌套picklist对象定义选项等。
内容的提问来源于stack exchange,提问作者Devil Hunter
相关产品推荐
相关产品推荐

