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

如何在Salesforce SOQL中查询Opportunity关联Product Name?返回[object Object]是何原因

问题原因说明

你遇到的Product2字段返回[object Object]的问题和SOQL语句本身无关,是返回结果的序列化/解析逻辑问题,具体原因如下:

  • Salesforce SOQL的父子关系查询默认返回嵌套结构:你在子查询OpportunityLineItems中查询父对象Product2的Name字段时,返回结果的标准结构为:
    {
      "Quantity":"1",
      "UnitPrice":"10",
      "ProductCode":"code1",
      "Product2": {
        "Name": "name1"
      }
    }
    
    而非直接在OpportunityLineItem的顶层返回Product2.Name字段。
  • 你当前拿到的"Product2":"[object Object]"输出,是你用来打印/导出查询结果的工具在序列化时,没有对嵌套的Product2对象做递归序列化,直接调用了对象的默认toString方法导致的。

验证方式

你可以直接在Salesforce自带的Developer Console中执行你写的SOQL语句验证:

SELECT Amount, Account.Name, Account.AccountNumber, Name, 
(
  SELECT Quantity, UnitPrice, ProductCode,  Product2.Name FROM 
  OpportunityLineItems
)
FROM Opportunity

在返回结果中点击OpportunityLineItems列的展开按钮,再展开对应行项目的Product2属性,就能看到正确的Name值为你在UI中看到的name1。

解决方案

根据你使用的查询工具/开发语言,对应调整即可:

  • 如果是Apex代码中处理查询结果:通过OpportunityLineItem.Product2.Name的语法即可取到正确的产品名称,不要直接对OpportunityLineItem对象做浅度序列化后输出
  • 如果是第三方API调用工具返回该结果:检查工具的响应解析配置,开启嵌套sObject的自动序列化配置,即可输出完整的嵌套结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:54:00