Apexメソッドにレコード情報をJSONで受け渡すサンプル
環境
salesforce
操作方法
1.LWC側のJavaScriptコード
import { LightningElement } from 'lwc'; import createAccount from '@salesforce/apex/TestClass.createAccount'; export default class Sample extends LightningElement { createdAccountId; handleSubmit(){ const recordInput = { "Name": "Yamada", "Industry": "Biotechnology", "NumberOfEmployees": 100, } createAccount({recordInfoJson: JSON.stringify(recordInput)}) .then(createdRecord => { this.createdAccountId = createdRecord.Id; }); } }
説明
JSON.stringify() で JSON化してApexクラスのメソッドに引数として渡します。
2.Apexメソッド側の処理コード
public with sharing class TestClass { @AuraEnabled public static Account createAccount(String recordInfoJson){ try { Account acct = (Account)JSON.deserialize(recordInfoJson, Account.class); insert acct; return acct; } catch (Exception e) { throw new AuraHandledException(e.getMessage()); } } }
説明
String として受け取り、JSON.deserialize() で各オブジェクト型に変換します。