我正在研究用户可以从生产框中获取数据并通过提供生产URL和信用卡将其插入开发人员沙箱的要求。我能够获取数据,但不知何故无法将JSON转换为所需的对象类型。由于我是Salesforce的新手,请不要介意基本问题。
以下是工作逻辑和问题:
for(DataMigrationNAP__c d : dataMigrationNAP) // this loop will give all NAP object names and its corresponding fields like {'Account','Name,Phone,Id'},{'Opportunity', 'ID,Name, blah,blah'}...
{
final PageReference theUrl = new PageReference(SERVER_URL + '/services/data/v22.0/query/');
String soql = 'Select '+d.NAPObjectFields__c+' From '+d.Name+' a limit ' + recordCount;
theUrl.getParameters().put('q',soql);
request = new HttpRequest();
request.setEndpoint(theUrl.getUrl());
request.setMethod('GET');
request.setHeader('Authorization', 'OAuth ' + SESSION_ID);
String body = (new Http()).send(request).getBody();
JSONParser parser = JSON.createParser(body);
do{
parser.nextToken();
}while(parser.hasCurrentToken() && !'records'.equals(parser.getCurrentName()));
parser.nextToken();
String typeName = 'List<' + d.Name + '>';
Type t = Type.forName(typeName);
List<sobject> acc1 = (List<sobject>) parser.readValueAs(t);
insert acc1;
System.debug('Values inserted : ' + acc1);
}
通过上面的逻辑,我试图获取Object by Object的数据并将其插入dev沙箱,我能够在JSON中完美地获取但是无法从JSON转换为所需的对象。问题是我不能硬编码对象或类型名称,因为它将是一个对象列表。如果您需要任何其他细节,请告知我们并提前致谢。也适用于任何其他方法,但它应该只通过顶点编码。