2017-08-22 9 views
0

から動的オブジェクトを作成する際に問題に直面します。私はデータを取得できますが、何とかJSONを必要なオブジェクトタイプに変換できません。私はSalesforceで初心者ですので、基本的な質問は気にしないでください。は、私は、ユーザーが生産ボックスからデータを取得し、ちょうど生産URLとcredsをを与えることによって、開発者のサンドボックスに挿入できる要件に取り組んでいますJSON

以下

が作業ロジックと問題です:上記のロジックを介し

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); 
     } 

私は、オブジェクトによってデータオブジェクトを取得してのdevのサンドボックスに挿入しようとしている、私はJSONに完全にフェッチすることはできますができませんよJSONから必要なオブジェクトに変換する問題はオブジェクトのリストになるため、ObjectまたはTypeの名前をハードコードできないことです。その他の詳細が必要な場合は事前にお知らせください。他の方法でも開くことができますが、頂点コーディングのみを使用する必要があります。

+0

なぜあなたはSOQLリクエスト文字列の代わりに、体変数をデシリアライズしようとしていますか? –

+0

私の間違い申し訳ありませんが、コードを更新しています。 –

+0

@AlexPashkinリストをからリスト、リスト acc1 =(リスト)パーサーに変更してください。 readValueAs(t); –

答えて

0

がない以上、これは良い候補ができれば、あなたは、すでにJSON2Apexを試してみました。

関連する問題