Обработка экранирующих символов в JSON
В одном из моих веб-запросов я получаю Response Body data
как показано ниже

{
"JobId":1528,
"CaseId":61687,
"CaseName":"CaseName_3923",
"FirmId":4175,
"FirmName":"FirmName7922442",
"CaseFirmName":"CaseFirmName7922442",
"LastUpdatedDate":"0001-01-01T00:00:00Z"
}
Мне нужно использовать весь ответ тела в следующем веб-запросе, и для этого я хочу удалить начальный 
персонажи.
Есть ли способ или настройка применяются в Jmeter
с помощью которого я могу удалить этих персонажей? На самом деле я пытался Json Extractor
с настройками ниже, но это не работает, поэтому я предполагаю, что начальный символ "" "создает проблему, не назначая значение идентификатора задания переменной vJobid
JSON Extractor: Apply To: только основной пример Имя переменных Cretaed: vJobId
Json PathExtractor: $.JobID
Матч № 1
2 ответа
Странные символы в начале вашей структуры JSON - это неправильно закодированная спецификация (метка порядка байтов). Кажется, вы получили значение UTF-8, которое отображается в виде строки в кодировке ISO-8859-1.
Поэтому первое, что нужно сделать, - это найти место, где вы ошиблись в кодировке, и исправить это. Если это не вариант, вы можете попытаться закодировать данные обратно в UTF-8 самостоятельно, используя JSR223PostProcessor
перед вашим JSON Extractor со следующим Groovy кодом:
vars.put("correctedResult",
new String(prev.responseDataAsString.bytes("ISO-8859-1"), "UTF-8"));
Этот постпроцессор попытается преобразовать плохо закодированную строку обратно в UTF-8 и сохранить полученный результат в переменной JMeter. correctedResult
, выберите JMeter Variable Name to use
со значением correctedResult
в экстракторе JSON, чтобы использовать это вновь закодированное значение вместо исходных данных.
Но ясно, найти причину неправильной кодировки - лучший способ.
Вместо этого вы можете использовать Regular Expression Extractor,
Используйте регулярное выражение:
JobId":(\d+)
Матч № 1
Это будет соответствовать первому номеру идентификатора работы в ответе