2016-08-30 4 views
0

Нужна помощь в анализе JSON, когда данные ответа начинаются с посторонних символов.JMeter JSON parse

я способен извлекать данные из примера с использованием JSON экстракции запроса - $.results

**Working example:** 
{ 
    "results" : [ 
     { 
     "address_components" : [ 
      { 
       "long_name" : "2300", 
       "short_name" : "2300", 
       "types" : [ "street_number" ] 
      }, 
      { 
       "long_name" : "22201", 
       "short_name" : "22201", 
       "types" : [ "postal_code" ] 
      } 
     ] 
     } 
    ], 
    "status" : "OK" 
} 

Однако я не смог найти любые подходящие методы для извлечения данных из следующего объекта JSON:

/**/_xdc_._9l6mlb && _xdc_._9l6mlb({ 
    "results" : [ 
     { 
     "address_components" : [ 
      { 
       "long_name" : "2300", 
       "short_name" : "2300", 
       "types" : [ "street_number" ] 
      }, 
      { 
       "long_name" : "22201", 
       "short_name" : "22201", 
       "types" : [ "postal_code" ] 
      } 
     ] 
     } 
    ], 
    "status" : "OK" 
} 
) 

Пробовал использовать подстановочный знак, чтобы избежать ведущих символов перед объектом JSON с - *$.results - но не повезло

Любая помощь была бы очень благодарна

+0

есть 2 постпроцессора: один удаляет «мусор», второй извлекает json из очищенных данных –

ответ

0

Этот бит /**/_xdc_._9l6mlb && _xdc_._9l6mlb( делает ваш JSON немного недействительным. Я хотел бы предложить использовать JSR223 PostProcessor и Groovy язык вместо как:

import groovy.json.JsonBuilder 
import groovy.json.JsonSlurper 

def response = prev.getResponseDataAsString() 

def cleanResponse = response.substring(response.indexOf("{"), response.lastIndexOf(")")) 
def jsonSlurper = new JsonSlurper() 
def json = jsonSlurper.parseText(cleanResponse) 
def results = json.results 

def builder = new JsonBuilder(results) 

vars.put("results", builder.toPrettyString()) 

Приведенный выше код будет делать абсолютно такой же, как JSON Path постпроцессора и сохранить значение в ${results} JMeter переменной

Ссылки:

+0

Спасибо Dmitri. Я также нашел другой способ решить эту проблему: используйте «Экземпляр регулярного выражения», чтобы удалить посторонние символы и сохранить JSON в переменную. Выгрузите эту переменную в виде вывода с помощью Dummy sampler, а затем проанализируйте полученный JSON – RayLogan