Я пытаюсь преобразовать список в большой двоичный объект, но не могу этого сделать.

Я использовал следующий синтаксис: encodedData — это список в кодировке base64.

При запуске: Blob.valueOf(encodedData); я получил следующую ошибку: Method does not exist or incorrect signature: void valueOf(List<String>) from the type Blob

Пожалуйста, дайте мне знать, если у кого-то есть идеи!

0
Davis Handler 22 Июл 2020 в 21:49
2
Что вы ожидаете получить на выходе? Обычно вы кодируете только одну строку. Ошибка говорит вам все, что вам нужно знать. Но ваш пост с вопросом выше должен заполнить некоторые пробелы.
 – 
Adrian Larson
22 Июл 2020 в 22:11
1
Вы можете использовать String.join() в списке для перехода в Blob.valueOf(), но вам, конечно, нужно будет разбить его снова при вызове toString()
 – 
barrick
23 Июл 2020 в 01:15

2 ответа

Лучший ответ

Спасибо за всю помощь, ребята! Я пошел со следующим подходом:

  1. Преобразовал List <String> в Map , так как я имею дело с JSON для своего делового варианта использования.
Map <String, Object> surveyJSON = new Map <String, Object>();
surveyJson.put('Survey_Name__c', d.Survey_Name__c);
surveyJson.put('Survey_Questions__c', surveyQuestions);
surveyJSON.put('Survey_Choices__c', surveyChoices);
  1. Как только я создал новую карту, я смог использовать метод valueOf для объекта blob.
Document doc = new Document();
doc.Body = Blob.valueOf(JSON.serialize(surveyJson));
0
Davis Handler 23 Июл 2020 в 05:50

Попробуйте использовать json.serialize(encodedData) вот так.

List<String> encodedData = new List<String>{'string1','String2'};
blob blob1;
String req = json.serialize(encodedData);
blob1 = blob.valueOf(req);
system.debug(req);
system.debug(blob1);
1
David Reed 23 Июл 2020 в 01:58