с функцией:Есть ли регулярные выражения для web_reg_save_param() в границах LB и RB?
web_reg_save_param("questionId", "LB=secretKnowledges\":\\[\\{", "RB=\"", LAST);
Я пытаюсь поймать значение параметра «QuestionID», который исходит из ответа сервера в качестве (файл в формате JSON) и выглядит так:
"salutation":{"firstNaAction me":"Sebastian","lastName":"Martens"},"userAccount":{"mail":"[email protected]","notificationLevel":"NEW_DEVICE","authenticationLevel":"ONE_FACTOR","gcid":"bb2e64a9-1b39-4692-9c52-4845eb15c4f7","secretKnowledges":[{"questionId":11301},{"questionId":11302}],"secretKnowledgeActivated":true,"status":"ACTIVATED"}}
вместо Я получил следующую ошибку:
Action.c(23): Error -26377: No match found for the requested parameter "questionId". Either the specified boundaries were not found in the response or the matched text is longer than current max html parameter size of 8000 bytes. The total length of the response is 1506 bytes. You can use web_set_max_html_param_len to increase the max parameter size. [MsgId: MERR-26377]Action.c(23): Notify: Saving Parameter "questionId = ".
что я сделал не так?
@teserg: спасибо, что это сработало, но вы можете объяснить мне логику этого выражения: 'LB = {\" questionId \ ":", "RB =}', потому что вы устанавливаете обе границы под фигурные скобки, и «questionId» в ответе задается под квадратной скобкой. Я имею в виду, что вы не девальвировали его почему? – otmann
'web_reg_save_param' - это не что иное, как функция разбора текста. Он просто пытается найти левую границу (LB) затем пытается найти правильную границу после позиции LB. Если оба они найдены, он извлекает любой текст между ними. – tserg42
@otmann, если какой-либо из ответов разрешил ваш вопрос, пожалуйста, подумайте о принятии его, нажав галочку. не обязательно :). – tserg42