2020-11-26 Unexpected token o in JSON at position 1

做Salesforce之后最常遇到的一个问题就是你需要写写Apex的后台代码,也要学习一点 Aura 和 LWC(Lightning Web Component)的技能,所以经常会遇到解析的问题,如果你对数据解析不正确则会遇到下面的问题:Unexpected token o in JSON at position 1
下面将这个问题整理如下:

  1. 后台返回的是一个Object,例如该方法返回的是一个我们在Apex里面自定义的Wrapper,那么在前端解析的时候我们就要用如下的方法;
@AuraEnabled
public static MatchAccountData isDuplicateCompany(String leadId){}

直接用result去取在wrapper里面定义的值

  isDuplicateCompany({
     leadId: this.recordId
        }).then(result =>{
            if(result.isDuplicate){
                this.handleRecordClick(result.accountId); 
            }
        });
  1. 如果返回值是一个Map 类型的,如下图所示:
    @AuraEnabled()
    public static Map getButtonVisibilityAccess(String stage, String type){}
 assessmentButtonVisibilty({
  stage: this.ass essmentStatus,
  type: this.assessmentType
            })
     .then(result => {
       console.log('result: ', result['Add Additional Roles']);
        if (result['Add Additional Roles'] !== undefined) {
        this.isAddAdditionalRoleVisible = result['Add Additional Roles'].Visible__c;
                    }
       this.handleRiskRoleDfnMdt();
                })
      .catch((error) => {
       this.message = 'Error received: code' + error.errorCode + ', ' +
      'message ' + error.body.message;
     });
        }
  1. 如果你想在console.log里看到后台返回的值,你需要做一下解析:
    JSON.stringify(result)
    JSON.parse() 方法不能用来解析已经解析过的数据,这里的参数是一个JSON string,如果是其他类型则会报错。

可以参考这个链接:
https://thisinterestsme.com/fix-unexpected-token-o-in-json/

你可能感兴趣的:(2020-11-26 Unexpected token o in JSON at position 1)